Skip to content

Commit 704eb1a

Browse files
committed
Перенес методы из MdoReferences в существующий класс MdoRefBuilder
и добавил использование стринг интернера
1 parent feae560 commit 704eb1a

File tree

3 files changed

+38
-68
lines changed

3 files changed

+38
-68
lines changed

src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DenyIncompleteValuesDiagnostic.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticSeverity;
2727
import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticTag;
2828
import com.github._1c_syntax.bsl.languageserver.diagnostics.metadata.DiagnosticType;
29-
import com.github._1c_syntax.bsl.languageserver.utils.MdoReferences;
29+
import com.github._1c_syntax.bsl.languageserver.utils.MdoRefBuilder;
3030
import com.github._1c_syntax.bsl.types.MDOType;
3131
import com.github._1c_syntax.mdclasses.mdo.AbstractMDObjectBase;
3232
import com.github._1c_syntax.mdclasses.mdo.AbstractMDObjectComplex;
@@ -61,7 +61,7 @@ public DenyIncompleteValuesDiagnostic() {
6161
protected void checkMetadata(AbstractMDObjectBase mdo) {
6262
getWrongDimensions((AbstractMDObjectComplex) mdo)
6363
.forEach((Dimension dimension) -> {
64-
var ownerMDOName = MdoReferences.getLocaleOwnerMdoName(documentContext, mdo);
64+
var ownerMDOName = MdoRefBuilder.getLocaleOwnerMdoName(documentContext, mdo);
6565
addDiagnostic(info.getMessage(dimension.getName(), ownerMDOName));
6666
});
6767
}

src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/MdoRefBuilder.java

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
package com.github._1c_syntax.bsl.languageserver.utils;
2323

2424
import com.github._1c_syntax.bsl.languageserver.context.DocumentContext;
25+
import com.github._1c_syntax.bsl.mdo.MD;
26+
import com.github._1c_syntax.bsl.mdo.support.ScriptVariant;
2527
import com.github._1c_syntax.bsl.parser.BSLParser;
2628
import com.github._1c_syntax.bsl.types.MDOType;
2729
import com.github._1c_syntax.bsl.types.MdoReference;
@@ -68,7 +70,7 @@ public String getMdoRef(DocumentContext documentContext, BSLParser.ComplexIdenti
6870
public String getMdoRef(
6971
DocumentContext documentContext,
7072
@Nullable
71-
TerminalNode identifier,
73+
TerminalNode identifier,
7274
List<? extends BSLParser.ModifierContext> modifiers
7375
) {
7476

@@ -91,6 +93,39 @@ public String getMdoRef(
9193
return stringInterner.intern(mdoRef.get());
9294
}
9395

96+
/**
97+
* Получить mdoRef в языке конфигурации
98+
*
99+
* @param documentContext the document context
100+
* @param mdo the mdo
101+
* @return the locale mdoRef
102+
*/
103+
public String getLocaleMdoRef(DocumentContext documentContext, MD mdo) {
104+
final var mdoReference = mdo.getMdoReference();
105+
final String result;
106+
if (documentContext.getServerContext().getConfiguration().getScriptVariant() == ScriptVariant.ENGLISH) {
107+
result = mdoReference.getMdoRef();
108+
} else {
109+
result = mdoReference.getMdoRefRu();
110+
}
111+
return stringInterner.intern(result);
112+
}
113+
114+
/**
115+
* Получить имя родителя метаданного в языке конфигурации.
116+
*
117+
* @param documentContext the document context
118+
* @param mdo the mdo
119+
* @return the locale owner mdo name
120+
*/
121+
public String getLocaleOwnerMdoName(DocumentContext documentContext, MD mdo) {
122+
final var names = getLocaleMdoRef(documentContext, mdo).split("\\.");
123+
if (names.length <= 1) {
124+
return "";
125+
}
126+
return stringInterner.intern(names[0].concat(".").concat(names[1]));
127+
}
128+
94129
private Optional<String> getCommonModuleMdoRef(DocumentContext documentContext, String commonModuleName) {
95130
return documentContext.getServerContext()
96131
.getConfiguration()

src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/MdoReferences.java

Lines changed: 0 additions & 65 deletions
This file was deleted.

0 commit comments

Comments
 (0)