diff --git a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/QueryComputer.java b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/QueryComputer.java index 20f6f1bd0ad..b3eb3e031e5 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/QueryComputer.java +++ b/src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/QueryComputer.java @@ -107,7 +107,7 @@ public ParseTree visitString(BSLParser.StringContext ctx) { for (Token token : ctx.getTokens()) { // бывает несколько токенов строки в одной строе файла - // добавляем часть строки только в случае находления ее на другой строке файла + // добавляем часть строки только в случае нахождения ее на другой строке файла if (token.getLine() != prevTokenLine && prevTokenLine != -1) { strings.add(partString); partString = ""; @@ -116,7 +116,11 @@ public ParseTree visitString(BSLParser.StringContext ctx) { // если новый токен строки находится на той же строке файла, что и предыдущий, то добавляем его к ней if (token.getLine() == prevTokenLine && prevTokenLine != -1) { var newString = getString(startLine, token); - partString = newString.substring(partString.length()); + if (newString.length() > partString.length()) { + partString = newString.substring(partString.length()); + } else { + partString = ""; + } } else { partString = getString(startLine, token); }