Skip to content

Commit

Permalink
Merge branch 'release/v1.4.10'
Browse files Browse the repository at this point in the history
  • Loading branch information
nixel2007 committed May 20, 2016
2 parents d9a722a + 8055df2 commit 277ec2e
Show file tree
Hide file tree
Showing 6 changed files with 166 additions and 63 deletions.
9 changes: 8 additions & 1 deletion 1c.sublime-completions
Original file line number Diff line number Diff line change
Expand Up @@ -781,6 +781,13 @@
"CommonSettingsStorage",
"DynamicListsUserSettingsStorage",
"ReportsUserSettingsStorage",
"SystemSettingsStorage"
"SystemSettingsStorage",
"ВстроенныеПокупки",
"InAppPurchases",
"ОтображениеРекламы",
"AdRepresentationПанельЗадачОС",
"OSTaskbar",
"ПроверкаВстроенныхПокупок",
"InAppPurchasesValidation"
]
}
160 changes: 103 additions & 57 deletions 1c.tmLanguage
Original file line number Diff line number Diff line change
Expand Up @@ -16,41 +16,12 @@
<key>patterns</key>
<array>
<dict>
<key>name</key>
<string>comment.line.double-slash.bsl</string>
<key>match</key>
<string>(//.*$)</string>
</dict>
<dict>
<key>name</key>
<string>string.quoted.double.bsl</string>
<key>begin</key>
<string>\"</string>
<key>end</key>
<string>\"(?![\"])</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#query</string>
</dict>
<dict>
<key>name</key>
<string>constant.character.escape.bsl</string>
<key>match</key>
<string>\"\"</string>
</dict>
<dict>
<key>name</key>
<string>comment.line.double-slash.bsl</string>
<key>match</key>
<string>(^\s*//.*$)</string>
</dict>
</array>
<key>include</key>
<string>#basic</string>
</dict>
<dict>
<key>comment</key>
<string>Proc and function defenition</string>
<string>Proc and function definition</string>
<key>begin</key>
<string>(?i:(?&lt;=[^\wа-яё\.]|^)(Процедура|Procedure|Функция|Function)\s+([a-zа-яё0-9_]+)\s*\()</string>
<key>beginCaptures</key>
Expand Down Expand Up @@ -80,7 +51,13 @@
<array>
<dict>
<key>include</key>
<string>$self</string>
<string>#basic</string>
</dict>
<dict>
<key>name</key>
<string>keyword.operator.assignment.bsl</string>
<key>match</key>
<string>(=)</string>
</dict>
<dict>
<key>name</key>
Expand Down Expand Up @@ -138,22 +115,34 @@
</dict>
</dict>
<dict>
<key>comment</key>
<string>Variable assignment</string>
<key>name</key>
<string>constant.language.bsl</string>
<key>match</key>
<string>(?i:(?&lt;=[^\wа-яё\.]|^)(Неопределено|Undefined|Истина|True|Ложь|False|NULL)(?=[^\wа-яё\.]|$))</string>
</dict>
<dict>
<key>name</key>
<string>constant.numeric.bsl</string>
<key>match</key>
<string>\b((\h{8}-(\h{4}-){3}\h{12})|\d+\.?\d*)\b</string>
</dict>
<dict>
<key>name</key>
<string>constant.other.date.bsl</string>
<key>match</key>
<string>\'((\d{4}[^\d\']*\d{2}[^\d\']*\d{2})([^\d\']*\d{2}[^\d\']*\d{2}([^\d\']*\d{2})?)?)\'</string>
<string>meta.var-single-variable.bsl</string>
<key>begin</key>
<string>(?i:(?&lt;=;|^)\s*([\wа-яё]+))\s*(=)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>variable.assignment.bsl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.operator.assignment.bsl</string>
</dict>
</dict>
<key>end</key>
<string>(?=;)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
<dict>
<key>name</key>
Expand Down Expand Up @@ -203,12 +192,6 @@
<key>match</key>
<string>&lt;=|&gt;=|=|&lt;|&gt;</string>
</dict>
<dict>
<key>name</key>
<string>keyword.operator.assignment.bsl</string>
<key>match</key>
<string>(=)</string>
</dict>
<dict>
<key>name</key>
<string>keyword.operator.arithmetic.bsl</string>
Expand All @@ -219,7 +202,7 @@
<key>name</key>
<string>keyword.operator.bsl</string>
<key>match</key>
<string>(,|;|\?)</string>
<string>(;|\?)</string>
</dict>
<dict>
<key>name</key>
Expand Down Expand Up @@ -435,15 +418,15 @@
<key>name</key>
<string>support.class.bsl</string>
<key>match</key>
<string>(?i:(?&lt;=[^\wа-яё\.]|^)(WSСсылки|WSReferences|БиблиотекаКартинок|PictureLib|БиблиотекаМакетовОформленияКомпоновкиДанных|DataCompositionAppearanceTemplateLib|БиблиотекаСтилей|StyleLib|БизнесПроцессы|BusinessProcesses|ВнешниеИсточникиДанных|ExternalDataSources|ВнешниеОбработки|ExternalDataProcessors|ВнешниеОтчеты|ExternalReports|Документы|Documents|ДоставляемыеУведомления|DeliverableNotifications|ЖурналыДокументов|DocumentJournals|Задачи|Tasks|ИспользованиеРабочейДаты|WorkingDateUse|ИсторияРаботыПользователя|UserWorkHistory|Константы|Constants|КритерииОтбора|FilterCriteria|Метаданные|Metadata|Обработки|DataProcessors|ОтправкаДоставляемыхУведомлений|DeliverableNotificationSend|Отчеты|Reports|ПараметрыСеанса|SessionParameters|Перечисления|Enums|ПланыВидовРасчета|ChartsOfCalculationTypes|ПланыВидовХарактеристик|ChartsOfCharacteristicTypes|ПланыОбмена|ExchangePlans|ПланыСчетов|ChartsOfAccounts|ПолнотекстовыйПоиск|FullTextSearch|ПользователиИнформационнойБазы|InfoBaseUsers|Последовательности|Sequences|РасширенияКонфигурации|ConfigurationExtensions|РегистрыБухгалтерии|AccountingRegisters|РегистрыНакопления|AccumulationRegisters|РегистрыРасчета|CalculationRegisters|РегистрыСведений|InformationRegisters|РегламентныеЗадания|ScheduledJobs|СериализаторXDTO|XDTOSerializer|Справочники|Catalogs|СредстваГеопозиционирования|LocationTools|СредстваКриптографии|CryptoToolsManager|СредстваМультимедиа|MultimediaTools|СредстваПочты|MailTools|СредстваТелефонии|TelephonyTools|ФабрикаXDTO|XDTOFactory|ФоновыеЗадания|BackgroundJobs|ХранилищаНастроек)(?=[^\wа-яё]|$))</string>
<string>(?i:(?&lt;=[^\wа-яё\.]|^)(WSСсылки|WSReferences|БиблиотекаКартинок|PictureLib|БиблиотекаМакетовОформленияКомпоновкиДанных|DataCompositionAppearanceTemplateLib|БиблиотекаСтилей|StyleLib|БизнесПроцессы|BusinessProcesses|ВнешниеИсточникиДанных|ExternalDataSources|ВнешниеОбработки|ExternalDataProcessors|ВнешниеОтчеты|ExternalReports|Документы|Documents|ДоставляемыеУведомления|DeliverableNotifications|ЖурналыДокументов|DocumentJournals|Задачи|Tasks|ИспользованиеРабочейДаты|WorkingDateUse|ИсторияРаботыПользователя|UserWorkHistory|Константы|Constants|КритерииОтбора|FilterCriteria|Метаданные|Metadata|Обработки|DataProcessors|ОтправкаДоставляемыхУведомлений|DeliverableNotificationSend|Отчеты|Reports|ПараметрыСеанса|SessionParameters|Перечисления|Enums|ПланыВидовРасчета|ChartsOfCalculationTypes|ПланыВидовХарактеристик|ChartsOfCharacteristicTypes|ПланыОбмена|ExchangePlans|ПланыСчетов|ChartsOfAccounts|ПолнотекстовыйПоиск|FullTextSearch|ПользователиИнформационнойБазы|InfoBaseUsers|Последовательности|Sequences|РасширенияКонфигурации|ConfigurationExtensions|РегистрыБухгалтерии|AccountingRegisters|РегистрыНакопления|AccumulationRegisters|РегистрыРасчета|CalculationRegisters|РегистрыСведений|InformationRegisters|РегламентныеЗадания|ScheduledJobs|СериализаторXDTO|XDTOSerializer|Справочники|Catalogs|СредстваГеопозиционирования|LocationTools|СредстваКриптографии|CryptoToolsManager|СредстваМультимедиа|MultimediaTools|СредстваПочты|MailTools|СредстваТелефонии|TelephonyTools|ФабрикаXDTO|XDTOFactory|ФоновыеЗадания|BackgroundJobs|ХранилищаНастроек|SettingsStorages|ВстроенныеПокупки|InAppPurchases|ОтображениеРекламы|AdRepresentationПанельЗадачОС|OSTaskbar|ПроверкаВстроенныхПокупок|InAppPurchasesValidation)(?=[^\wа-яё]|$))</string>
</dict>
<dict>
<key>comment</key>
<string>Глобальный контекст - Свойства (переменные)</string>
<key>name</key>
<string>support.variable.bsl</string>
<key>match</key>
<string>(?i:(?&lt;=[^\wа-яё\.]|^)(ГлавныйИнтерфейс|MainInterface|ГлавныйСтиль|MainStyle|ПараметрЗапуска|LaunchParameter|РабочаяДата|WorkingDate|SettingsStorages|ХранилищеВариантовОтчетов|ReportsVariantsStorage|ХранилищеНастроекДанныхФорм|FormDataSettingsStorage|ХранилищеОбщихНастроек|CommonSettingsStorage|ХранилищеПользовательскихНастроекДинамическихСписков|DynamicListsUserSettingsStorage|ХранилищеПользовательскихНастроекОтчетов|ReportsUserSettingsStorage|ХранилищеСистемныхНастроек|SystemSettingsStorage)(?=[^\wа-яё]|$))</string>
<string>(?i:(?&lt;=[^\wа-яё\.]|^)(ГлавныйИнтерфейс|MainInterface|ГлавныйСтиль|MainStyle|ПараметрЗапуска|LaunchParameter|РабочаяДата|WorkingDate|ХранилищеВариантовОтчетов|ReportsVariantsStorage|ХранилищеНастроекДанныхФорм|FormDataSettingsStorage|ХранилищеОбщихНастроек|CommonSettingsStorage|ХранилищеПользовательскихНастроекДинамическихСписков|DynamicListsUserSettingsStorage|ХранилищеПользовательскихНастроекОтчетов|ReportsUserSettingsStorage|ХранилищеСистемныхНастроек|SystemSettingsStorage)(?=[^\wа-яё]|$))</string>
</dict>
<dict>
<key>name</key>
Expand Down Expand Up @@ -529,6 +512,69 @@
</dict>
</array>
</dict>
<key>basic</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>name</key>
<string>comment.line.double-slash.bsl</string>
<key>match</key>
<string>(//.*$)</string>
</dict>
<dict>
<key>name</key>
<string>string.quoted.double.bsl</string>
<key>begin</key>
<string>\"</string>
<key>end</key>
<string>\"(?![\"])</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#query</string>
</dict>
<dict>
<key>name</key>
<string>constant.character.escape.bsl</string>
<key>match</key>
<string>\"\"</string>
</dict>
<dict>
<key>name</key>
<string>comment.line.double-slash.bsl</string>
<key>match</key>
<string>(^\s*//.*$)</string>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>constant.language.bsl</string>
<key>match</key>
<string>(?i:(?&lt;=[^\wа-яё\.]|^)(Неопределено|Undefined|Истина|True|Ложь|False|NULL)(?=[^\wа-яё\.]|$))</string>
</dict>
<dict>
<key>name</key>
<string>constant.numeric.bsl</string>
<key>match</key>
<string>\b((\h{8}-(\h{4}-){3}\h{12})|\d+\.?\d*)\b</string>
</dict>
<dict>
<key>name</key>
<string>constant.other.date.bsl</string>
<key>match</key>
<string>\'((\d{4}[^\d\']*\d{2}[^\d\']*\d{2})([^\d\']*\d{2}[^\d\']*\d{2}([^\d\']*\d{2})?)?)\'</string>
</dict>
<dict>
<key>name</key>
<string>keyword.operator.bsl</string>
<key>match</key>
<string>(,)</string>
</dict>
</array>
</dict>
</dict>
</dict>
</plist>
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
## 1.4.10

* Добавлена поддержка новых классов 8.3.8. Обновлена справка по методам.
* Добавлено определение и подсветка присваивания переменных
* Добавлена настройка "onescriptPath" для указания пути к исполняемому файлу oscript, в случае когда он отсутствует в `PATH`
* Добавлена настройка `linterEntryPoint`, позволяющая задать точку входа в окружение `oscript` при редактировании модульных приложений на `oscript`
* Добавлена настройка `lintOtherExtensions`, заменившая собой `lintBSLFiles`. Предназначена для указания списка расширений, на которых будет срабатывать `OneScriptLint`
* Исправлена ошибочная вставка перевода строки и символа `|` при открытом окне автодоплнения

## 1.4.9

* Исправлено ошибочное определение операторов языка (например, `ССЫЛКА`) после ключевого слова `КАК`
Expand Down
10 changes: 10 additions & 0 deletions Default.sublime-keymap
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@
"key": "selector",
"operator": "equal",
"operand": "source.bsl"
},
{
"key": "auto_complete_visible",
"operator": "equal",
"operand": false
}
]
},
Expand All @@ -42,6 +47,11 @@
"key": "selector",
"operator": "equal",
"operand": "source.bsl"
},
{
"key": "auto_complete_visible",
"operator": "equal",
"operand": false
}
]
}
Expand Down
4 changes: 3 additions & 1 deletion Language 1C (BSL).sublime-settings
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
{
"tab_size": 4,
"translate_tabs_to_spaces": false,
"lintBSLFiles": false
"onescriptPath": "",
"lintOtherExtensions": "",
"linterEntryPoint": ""
}
37 changes: 33 additions & 4 deletions linter.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,47 @@
"""This module exports the OneScriptLint plugin class."""

import sublime
import os
from SublimeLinter.lint import Linter, util

def getCommandId():
onescriptPath = sublime.load_settings('Language 1C (BSL).sublime-settings').get('onescriptPath')
if not onescriptPath or len(onescriptPath) == 0:
command = 'oscript'
else:
command = onescriptPath

return command

class OneScriptLint(Linter):
"""Provides an interface to OneScriptLint."""

syntax = '1c'
cmd = ('oscript -encoding=utf-8 -check @')
cmd_string = getCommandId() + ' -encoding=utf-8 -check @'
cmd = (cmd_string)
regex = r'\{\S+\s+(?P<error>.*)\s\/\s.*:\s+(?P<line>\d+)\s+\/\s+(?P<message>.*)\}'
error_stream = util.STREAM_BOTH
comment_re = r'\s*//'

def run(self, cmd, code):
lintBSLFiles = sublime.load_settings('Language 1C (BSL).sublime-settings').get('lintBSLFiles')
if not (self.filename.endswith('.bsl') and not lintBSLFiles):
return self.communicate(cmd, code)
lintOtherExtensions = sublime.load_settings('Language 1C (BSL).sublime-settings').get('lintOtherExtensions')
linterEntryPoint = sublime.load_settings('Language 1C (BSL).sublime-settings').get('linterEntryPoint')
filePath = self.filename
arrFilePath = filePath.split('.')
if len(arrFilePath) == 0:
return
extension = arrFilePath[len(arrFilePath) - 1];
if not extension == 'os' and lintOtherExtensions.find(extension) == -1:
return

if not linterEntryPoint == '':
project_path = ''
projectPaths = sublime.active_window().folders()
for projectPath in projectPaths:
if filePath.find(projectPath) > -1:
project_path = projectPath;
break

cmd.append("-env=" + os.path.join(project_path, linterEntryPoint))

return self.communicate(cmd, code)

0 comments on commit 277ec2e

Please sign in to comment.