1717let s: cpo_save = &cpo
1818set cpo &vim
1919
20+ " Drop fold if it set but vim doesn't support it.
21+ if version < 600 && exists (" bsl_fold" )
22+ unlet bsl_fold
23+ endif
24+
2025syn case ignore
2126syn sync lines =250
2227
@@ -36,8 +41,6 @@ syn match constant_other_date_bsl "\'\(\(\d{4}[^\d\']*\d{2}[^\d\']*\d
3641
3742" --- Keywords ---
3843syn keyword constant_language_bsl Неопределено Undefined Истина True Ложь False NULL
39- syn keyword keyword_statement_bsl Процедура Procedure Функция Function
40- syn keyword keyword_statement_bsl КонецПроцедуры EndProcedure КонецФункции EndFunction
4144syn keyword keyword_control_bsl Прервать Break Продолжить Continue Возврат Return
4245syn keyword keyword_control_conditional_bsl Если If Иначе Else ИначеЕсли ElsIf Тогда Then КонецЕсли EndIf
4346syn keyword keyword_control_exception_bsl Попытка Try Исключение Except КонецПопытки EndTry ВызватьИсключение Raise
@@ -145,6 +148,35 @@ syn keyword support_variable_bsl ГлавныйИнтерфейс MainInterface
145148
146149syn match bslSupportFunction " \% ([^.]\@ 1<=\| ^\)\% (\<\% ([a-z0-9_а-яё]\+\) *\>\)\z e\s *(" contains =support_function_bsl
147150
151+ " Поддержка сворачивания кода
152+ if exists (" bsl_fold" )
153+ syn match keyword_statement_bsl " \<\( Функция\| Function\)\> "
154+ syn match keyword_statement_bsl " \<\( КонецФункции\| EndFunction\)\> "
155+ syn region bslFunctionFold
156+ \ matchgroup= keyword_statement_bsl
157+ \ start = " \c\<\( функция\| function\)\> "
158+ \ end = " \c\<\( конецфункции\| endfunction\)\> "
159+ \ transparent fold
160+ \ keepend
161+
162+ syn match keyword_statement_bsl " \<\( Процедура\| Procedure\)\> "
163+ syn match keyword_statement_bsl " \<\( КонецПроцедуры\| EndProcedure\)\> "
164+ syn region bslProcedureFold
165+ \ matchgroup= keyword_statement_bsl
166+ \ start = " \c\<\( процедура\| procedure\)\> "
167+ \ end = " \c\<\( конецпроцедуры\| endprocedure\)\> "
168+ \ transparent fold
169+ \ keepend
170+
171+ syn sync match bslSync grouphere bslFunctionFold " \<\( Функция\| Function\)\> "
172+ syn sync match bslSync grouphere bslProcedureFold " \<\( Процедура\| Procedure\)\> "
173+
174+ setlocal foldmethod = syntax
175+ else
176+ syn keyword keyword_statement_bsl Процедура Procedure Функция Function
177+ syn keyword keyword_statement_bsl КонецПроцедуры EndProcedure КонецФункции EndFunction
178+ endif
179+
148180" Define the default highlighting.
149181" For version 5.7 and earlier: only when not done already
150182" For version 5.8 and later: only when an item doesn't have highlighting yet
0 commit comments