@@ -85,7 +85,7 @@ void testMergeHighlightingTokens() {
8585 // given
8686 context = SensorContextTester .create (Path .of ("." ));
8787 highlighter = new BSLHighlighter (context );
88- String content = "А = \" ВЫБРАТЬ РАЗРЕШЕННЫЕ Поле.Один \n " +
88+ String content = "А = \" \" \" ВЫБРАТЬ РАЗРЕШЕННЫЕ Поле.Один \n " +
8989 "|КАК \n " +
9090 "| Один, 2 \n " +
9191 " | КАК Два ИЗ Справочник.Поле\n " +
@@ -101,12 +101,65 @@ void testMergeHighlightingTokens() {
101101 // then
102102 String componentKey = "moduleKey:" + FILE_NAME ;
103103
104- checkTokenTypeAtPosition (componentKey , 1 , 4 , TypeOfText .STRING );
105- checkTokenTypeAtPosition (componentKey , 1 , 5 , TypeOfText .KEYWORD );
106- checkTokenTypeAtPosition (componentKey , 1 , 6 , TypeOfText .KEYWORD );
107- checkTokenTypeAtPosition (componentKey , 1 , 12 , TypeOfText .STRING );
108- checkTokenTypeAtPosition (componentKey , 1 , 13 , TypeOfText .KEYWORD );
109- checkTokenTypeAtPosition (componentKey , 1 , 25 , TypeOfText .STRING );
104+ checkTokenTypeAtPosition (componentKey , 1 , 7 , TypeOfText .STRING );
105+ checkTokenTypeAtPosition (componentKey , 1 , 8 , TypeOfText .KEYWORD );
106+ checkTokenTypeAtPosition (componentKey , 1 , 9 , TypeOfText .KEYWORD );
107+ checkTokenTypeAtPosition (componentKey , 1 , 15 , TypeOfText .STRING );
108+ checkTokenTypeAtPosition (componentKey , 1 , 16 , TypeOfText .KEYWORD );
109+ checkTokenTypeAtPosition (componentKey , 1 , 28 , TypeOfText .STRING );
110+
111+ checkTokenTypeAtPosition (componentKey , 2 , 0 , TypeOfText .STRING );
112+ checkTokenTypeAtPosition (componentKey , 2 , 1 , TypeOfText .KEYWORD );
113+ checkTokenTypeAtPosition (componentKey , 2 , 2 , TypeOfText .KEYWORD );
114+
115+ checkTokenTypeAtPosition (componentKey , 3 , 0 , TypeOfText .STRING );
116+ checkTokenTypeAtPosition (componentKey , 3 , 1 , TypeOfText .STRING );
117+ checkTokenTypeAtPosition (componentKey , 3 , 5 , TypeOfText .STRING );
118+ checkTokenTypeAtPosition (componentKey , 3 , 9 , TypeOfText .CONSTANT );
119+
120+ checkTokenTypeAtPosition (componentKey , 4 , 1 , TypeOfText .STRING );
121+ checkTokenTypeAtPosition (componentKey , 4 , 2 , TypeOfText .STRING );
122+ checkTokenTypeAtPosition (componentKey , 4 , 6 , TypeOfText .KEYWORD );
123+ checkTokenTypeAtPosition (componentKey , 4 , 10 , TypeOfText .STRING );
124+ checkTokenTypeAtPosition (componentKey , 4 , 13 , TypeOfText .KEYWORD );
125+ checkTokenTypeAtPosition (componentKey , 4 , 16 , TypeOfText .KEYWORD_LIGHT );
126+
127+ checkTokenTypeAtPosition (componentKey , 5 , 0 , TypeOfText .STRING );
128+ checkTokenTypeAtPosition (componentKey , 5 , 1 , TypeOfText .KEYWORD );
129+ checkTokenTypeAtPosition (componentKey , 5 , 18 , TypeOfText .KEYWORD );
130+ checkTokenTypeAtPosition (componentKey , 5 , 19 , TypeOfText .KEYWORD_LIGHT );
131+ checkTokenTypeAtPosition (componentKey , 5 , 20 , TypeOfText .STRING );
132+ checkTokenTypeAtPosition (componentKey , 5 , 21 , TypeOfText .KEYWORD_LIGHT );
133+
134+ }
135+
136+ @ Test
137+ void testCrazyStrings () {
138+ // given
139+ context = SensorContextTester .create (Path .of ("." ));
140+ highlighter = new BSLHighlighter (context );
141+ String content = "ТекстПредупреждения = " +
142+ "\" выбрать пункт меню \" " +
143+ "\" и следовать подсказкам мастера обновления\' ;uk=\' Увага, використовується застаріла версія FREDO Звіт!\" " +
144+ "\" і слідувати підказкам майстра оновлення\' " ;
145+
146+ documentContext = new DocumentContext (URI .create ("file:///fake.bsl" ), content , null , null );
147+ documentContext .rebuild (content );
148+
149+ inputFile = Tools .inputFileBSL (FILE_NAME , BASE_DIR , content );
150+
151+ // when
152+ highlighter .saveHighlighting (inputFile , documentContext );
153+
154+ // then
155+ String componentKey = "moduleKey:" + FILE_NAME ;
156+
157+ checkTokenTypeAtPosition (componentKey , 1 , 7 , TypeOfText .STRING );
158+ checkTokenTypeAtPosition (componentKey , 1 , 8 , TypeOfText .KEYWORD );
159+ checkTokenTypeAtPosition (componentKey , 1 , 9 , TypeOfText .KEYWORD );
160+ checkTokenTypeAtPosition (componentKey , 1 , 15 , TypeOfText .STRING );
161+ checkTokenTypeAtPosition (componentKey , 1 , 16 , TypeOfText .KEYWORD );
162+ checkTokenTypeAtPosition (componentKey , 1 , 28 , TypeOfText .STRING );
110163
111164 checkTokenTypeAtPosition (componentKey , 2 , 0 , TypeOfText .STRING );
112165 checkTokenTypeAtPosition (componentKey , 2 , 1 , TypeOfText .KEYWORD );
0 commit comments