mirror of
https://github.com/salexdv/bsl_console.git
synced 2025-02-15 13:53:04 +02:00
Доработка функций форматирования с учетом следующих конструкций:
Попытка Исключение КонецПопытки Иначе ИначеЕсли
This commit is contained in:
parent
f9155be657
commit
9177ce69a5
@ -2503,13 +2503,18 @@ class bslHelper {
|
||||
let result = '';
|
||||
|
||||
const startWords = [
|
||||
'если', 'для', 'пока', 'функция', 'процедура',
|
||||
'if', 'for', 'while', 'function', 'procedure'
|
||||
'если', 'для', 'пока', 'функция', 'процедура', 'попытка',
|
||||
'if', 'for', 'while', 'function', 'procedure', 'try'
|
||||
];
|
||||
|
||||
const stopWords = [
|
||||
'конецесли', 'конеццикла', 'конецфункции', 'конецпроцедуры',
|
||||
'endif', 'enddo', 'endfunction', 'endprocedure'
|
||||
'конецесли', 'конеццикла', 'конецфункции', 'конецпроцедуры', 'конецпопытки',
|
||||
'endif', 'enddo', 'endfunction', 'endprocedure', 'endtry'
|
||||
];
|
||||
|
||||
const complexWords = [
|
||||
'исключение', 'иначе', 'иначеесли',
|
||||
'except', 'else', 'elseif'
|
||||
];
|
||||
|
||||
const strings = model.getValue().split('\n');
|
||||
@ -2540,7 +2545,10 @@ class bslHelper {
|
||||
if (startWords.includes(word))
|
||||
offset++;
|
||||
|
||||
if (stopWords.includes(word))
|
||||
if (stopWords.includes(word))
|
||||
offset = Math.max(0, offset - 1);
|
||||
|
||||
if (complexWords.includes(word))
|
||||
offset = Math.max(0, offset - 1);
|
||||
|
||||
word_i++;
|
||||
@ -2550,6 +2558,8 @@ class bslHelper {
|
||||
let strOffset = 0 < delta ? offset - 1 : offset;
|
||||
result = result + '\t'.repeat(strOffset) + original.trim() + '\n';
|
||||
|
||||
if (words.length && complexWords.includes(words[0].toLowerCase()))
|
||||
offset++;
|
||||
|
||||
});
|
||||
|
||||
|
@ -85,6 +85,29 @@
|
||||
'\t',
|
||||
'\tРезультат = Запрос.',
|
||||
'\t',
|
||||
'',
|
||||
'// Начало проверки форматирования для попытки и условия',
|
||||
'Попытка',
|
||||
' Док = Документы.АвансовыйОтчет.НайтиПоНомеру(1);',
|
||||
'Исключение',
|
||||
'Сообщить("Ошибка");',
|
||||
'КонецПопытки;',
|
||||
'',
|
||||
'Если Истина Тогда',
|
||||
'Если Истина Тогда',
|
||||
' Док = Документы.АвансовыйОтчет.НайтиПоНомеру(1);',
|
||||
'ИначеЕсли Ложь Тогда',
|
||||
'Док = Документы.РасходнаяНакладная.НайтиПоНомеру(1);',
|
||||
'КонецЕсли;',
|
||||
'Иначе',
|
||||
'Если Истина Тогда',
|
||||
'Док = Документы.РасходнаяНакладная.НайтиПоНомеру(1);',
|
||||
'Иначе',
|
||||
'Док = Документы.ПриходнаяНакладная.НайтиПоНомеру(1);',
|
||||
'КонецЕсли;',
|
||||
'КонецЕсли;',
|
||||
'// Конец проверки форматирования для попытки и условия',
|
||||
'',
|
||||
'КонецФункции',
|
||||
].join('\n');;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user