Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -82,17 +82,15 @@ dependencies {
api("org.eclipse.lsp4j", "org.eclipse.lsp4j.websocket.jakarta", "0.24.0")

// 1c-syntax
api("io.github.1c-syntax", "bsl-parser", "0.26.2") {
api("io.github.1c-syntax", "bsl-parser", "0.27.0-rc.1") {
exclude("com.ibm.icu", "*")
exclude("org.antlr", "ST4")
exclude("org.abego.treelayout", "org.abego.treelayout.core")
exclude("org.antlr", "antlr-runtime")
}
api("io.github.1c-syntax", "utils", "0.6.4")
api("io.github.1c-syntax", "mdclasses", "0.16.1-rc.1")
api("io.github.1c-syntax", "bsl-common-library", "0.9.0")
api("io.github.1c-syntax", "supportconf", "0.15.0")
api("io.github.1c-syntax", "bsl-parser-core", "0.3.1")

// JLanguageTool
implementation("org.languagetool", "languagetool-core", languageToolVersion){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
*/
package com.github._1c_syntax.bsl.languageserver.aop.measures;

import com.github._1c_syntax.bsl.languageserver.context.DocumentContext;
import com.github._1c_syntax.bsl.languageserver.context.events.DocumentContextContentChangedEvent;
import com.github._1c_syntax.bsl.parser.SDBLTokenizer;
import lombok.RequiredArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,26 +21,27 @@
*/
package com.github._1c_syntax.bsl.languageserver.cfg;

import com.github._1c_syntax.bsl.parser.BSLParserRuleContext;

import org.antlr.v4.runtime.ParserRuleContext;

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

public class BasicBlockVertex extends CfgVertex {

private final List<BSLParserRuleContext> statements = new ArrayList<>();
private final List<ParserRuleContext> statements = new ArrayList<>();

public List<BSLParserRuleContext> statements() {
public List<ParserRuleContext> statements() {
return statements;
}

public void addStatement(BSLParserRuleContext statement) {
public void addStatement(ParserRuleContext statement) {
statements.add(statement);
}

@Override
public Optional<BSLParserRuleContext> getAst() {
public Optional<ParserRuleContext> getAst() {
if(statements.isEmpty()) {
return super.getAst();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
import com.github._1c_syntax.bsl.languageserver.utils.Trees;
import com.github._1c_syntax.bsl.parser.BSLParser;
import com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor;
import com.github._1c_syntax.bsl.parser.BSLParserRuleContext;
import org.antlr.v4.runtime.ParserRuleContext;
import org.antlr.v4.runtime.tree.ParseTree;

import java.util.ArrayList;
Expand Down Expand Up @@ -528,7 +528,7 @@ public ParseTree visitPreproc_endif(BSLParser.Preproc_endifContext ctx) {
return ctx;
}

private static boolean isStatementLevelPreproc(BSLParserRuleContext ctx) {
private static boolean isStatementLevelPreproc(ParserRuleContext ctx) {
return ctx.getParent().getParent().getRuleIndex() == BSLParser.RULE_statement;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,15 @@
*/
package com.github._1c_syntax.bsl.languageserver.cfg;

import com.github._1c_syntax.bsl.parser.BSLParserRuleContext;
import org.antlr.v4.runtime.ParserRuleContext;

import java.util.Optional;

public abstract class CfgVertex {

private boolean isConnected;

public Optional<BSLParserRuleContext> getAst() {
public Optional<ParserRuleContext> getAst() {
return Optional.empty();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@
package com.github._1c_syntax.bsl.languageserver.cfg;

import com.github._1c_syntax.bsl.parser.BSLParser;
import com.github._1c_syntax.bsl.parser.BSLParserRuleContext;
import lombok.EqualsAndHashCode;
import org.antlr.v4.runtime.ParserRuleContext;

import java.util.Optional;

@EqualsAndHashCode(callSuper = true)
public class ConditionalVertex extends BranchingVertex {
private final BSLParserRuleContext ast;
private final ParserRuleContext ast;

public ConditionalVertex(BSLParser.IfBranchContext ctx) {
ast = ctx;
Expand All @@ -50,7 +50,7 @@ public BSLParser.ExpressionContext getExpression() {
}

@Override
public Optional<BSLParserRuleContext> getAst() {
public Optional<ParserRuleContext> getAst() {
return Optional.of(ast);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
package com.github._1c_syntax.bsl.languageserver.cfg;

import com.github._1c_syntax.bsl.parser.BSLParser;
import com.github._1c_syntax.bsl.parser.BSLParserRuleContext;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.antlr.v4.runtime.ParserRuleContext;

import java.util.Optional;

Expand All @@ -34,7 +34,7 @@ public class ForLoopVertex extends LoopVertex {
private final BSLParser.ForStatementContext loopHeader;

@Override
public Optional<BSLParserRuleContext> getAst() {
public Optional<ParserRuleContext> getAst() {
return Optional.of(loopHeader);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
package com.github._1c_syntax.bsl.languageserver.cfg;

import com.github._1c_syntax.bsl.parser.BSLParser;
import com.github._1c_syntax.bsl.parser.BSLParserRuleContext;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.antlr.v4.runtime.ParserRuleContext;

import java.util.Optional;

Expand All @@ -34,7 +34,7 @@ public class ForeachLoopVertex extends LoopVertex {
private final BSLParser.ForEachStatementContext loopHeader;

@Override
public Optional<BSLParserRuleContext> getAst() {
public Optional<ParserRuleContext> getAst() {
return Optional.of(loopHeader);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@
package com.github._1c_syntax.bsl.languageserver.cfg;

import com.github._1c_syntax.bsl.parser.BSLParser;
import com.github._1c_syntax.bsl.parser.BSLParserRuleContext;
import lombok.EqualsAndHashCode;
import org.antlr.v4.runtime.ParserRuleContext;

import java.util.Optional;

@EqualsAndHashCode(callSuper = true)
public class PreprocessorConditionVertex extends BranchingVertex {
private final BSLParserRuleContext astNode;
private final ParserRuleContext astNode;

PreprocessorConditionVertex(BSLParser.Preproc_ifContext ifClause) {
astNode = ifClause;
Expand All @@ -40,7 +40,7 @@ public class PreprocessorConditionVertex extends BranchingVertex {
}

@Override
public Optional<BSLParserRuleContext> getAst() {
public Optional<ParserRuleContext> getAst() {
return Optional.of(astNode);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
*/
package com.github._1c_syntax.bsl.languageserver.cfg;

import com.github._1c_syntax.bsl.parser.BSLParserRuleContext;
import lombok.Getter;
import org.antlr.v4.runtime.ParserRuleContext;

import java.util.ArrayDeque;
import java.util.Deque;
Expand Down Expand Up @@ -57,7 +57,7 @@ public StatementsBlockRecord(JumpInformationRecord jumpInfo) {
subgraphEnd = statements;
}

public void add(BSLParserRuleContext statement) {
public void add(ParserRuleContext statement) {
statements.addStatement(statement);
}

Expand Down Expand Up @@ -136,7 +136,7 @@ public StatementsBlockRecord getCurrentBlock() {
return blocks.peek();
}

public void addStatement(BSLParserRuleContext statement) {
public void addStatement(ParserRuleContext statement) {
getCurrentBlock().add(statement);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
package com.github._1c_syntax.bsl.languageserver.cfg;

import com.github._1c_syntax.bsl.parser.BSLParser;
import com.github._1c_syntax.bsl.parser.BSLParserRuleContext;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.antlr.v4.runtime.ParserRuleContext;

import java.util.Optional;

Expand All @@ -34,7 +34,7 @@ public class TryExceptVertex extends BranchingVertex {
private final BSLParser.TryStatementContext tryStatement;

@Override
public Optional<BSLParserRuleContext> getAst() {
public Optional<ParserRuleContext> getAst() {
return Optional.of(tryStatement);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
package com.github._1c_syntax.bsl.languageserver.cfg;

import com.github._1c_syntax.bsl.parser.BSLParser;
import com.github._1c_syntax.bsl.parser.BSLParserRuleContext;
import lombok.EqualsAndHashCode;
import lombok.RequiredArgsConstructor;
import org.antlr.v4.runtime.ParserRuleContext;

import java.util.Optional;

Expand All @@ -38,7 +38,7 @@ public BSLParser.ExpressionContext getExpression() {
}

@Override
public Optional<BSLParserRuleContext> getAst() {
public Optional<ParserRuleContext> getAst() {
return Optional.of(ast);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@
import com.github._1c_syntax.bsl.languageserver.utils.Trees;
import com.github._1c_syntax.bsl.parser.BSLLexer;
import com.github._1c_syntax.bsl.parser.BSLParser;
import com.github._1c_syntax.bsl.parser.BSLParserRuleContext;
import lombok.RequiredArgsConstructor;
import org.antlr.v4.runtime.ParserRuleContext;
import org.antlr.v4.runtime.tree.TerminalNode;
import org.eclipse.lsp4j.CodeAction;
import org.eclipse.lsp4j.CodeActionKind;
Expand Down Expand Up @@ -75,7 +75,7 @@ public List<CodeAction> getCodeActions(CodeActionParams params, DocumentContext
.filter(BSLParser.TypeNameContext.class::isInstance)
.map(BSLParser.TypeNameContext.class::cast)
.filter(DiagnosticHelper::isStructureType)
.map(BSLParserRuleContext::getParent)
.map(ParserRuleContext::getParent)
.map(BSLParser.NewExpressionContext.class::cast)
.map(BSLParser.NewExpressionContext::doCall);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,13 @@
import com.github._1c_syntax.bsl.languageserver.utils.Trees;
import com.github._1c_syntax.bsl.parser.BSLParser;
import com.github._1c_syntax.bsl.parser.BSLParserBaseListener;
import com.github._1c_syntax.bsl.parser.BSLParserRuleContext;
import com.github._1c_syntax.utils.StringInterner;
import jakarta.annotation.PostConstruct;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import org.antlr.v4.runtime.CommonToken;
import org.antlr.v4.runtime.ParserRuleContext;
import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.tree.ParseTreeWalker;
import org.antlr.v4.runtime.tree.Tree;
Expand All @@ -54,6 +54,7 @@

// Based on Cognitive Complexity white-paper, version 1.4.
// See https://www.sonarsource.com/docs/CognitiveComplexity.pdf for details.

/**
* Вычислитель когнитивной сложности кода.
* <p>
Expand Down Expand Up @@ -83,7 +84,7 @@ public class CognitiveComplexityComputer
private MethodSymbol currentMethod;
private int complexity;
private int nestedLevel;
private Set<BSLParserRuleContext> ignoredContexts;
private Set<ParserRuleContext> ignoredContexts;

@PostConstruct
public void init() {
Expand Down Expand Up @@ -316,13 +317,9 @@ private List<Token> flattenExpression(BSLParser.ExpressionContext ctx) {

final List<Tree> children = Trees.getChildren(ctx);
for (Tree tree : children) {
if (!(tree instanceof BSLParserRuleContext parserRule)) {
continue;
}

if (parserRule instanceof BSLParser.MemberContext memberContext) {
if (tree instanceof BSLParser.MemberContext memberContext) {
flattenMember(result, memberContext);
} else if (parserRule instanceof BSLParser.OperationContext operationContext) {
} else if (tree instanceof BSLParser.OperationContext operationContext) {
flattenOperation(result, operationContext);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
import com.github._1c_syntax.bsl.languageserver.utils.Trees;
import com.github._1c_syntax.bsl.parser.BSLParser;
import com.github._1c_syntax.bsl.parser.BSLParserBaseListener;
import com.github._1c_syntax.bsl.parser.BSLParserRuleContext;
import com.github._1c_syntax.utils.StringInterner;
import jakarta.annotation.PostConstruct;
import lombok.AccessLevel;
Expand All @@ -51,6 +50,7 @@
import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROTOTYPE;

// idea from https://pdepend.org/documentation/software-metrics/cyclomatic-complexity.html

/**
* Вычислитель цикломатической сложности кода.
* <p>
Expand Down Expand Up @@ -240,13 +240,9 @@ private static List<Token> flattenExpression(BSLParser.ExpressionContext ctx) {

final List<Tree> children = Trees.getChildren(ctx);
for (Tree tree : children) {
if (!(tree instanceof BSLParserRuleContext parserRule)) {
continue;
}

if (parserRule instanceof BSLParser.MemberContext memberContext) {
if (tree instanceof BSLParser.MemberContext memberContext) {
flattenMember(result, memberContext);
} else if (parserRule instanceof BSLParser.OperationContext operationContext) {
} else if (tree instanceof BSLParser.OperationContext operationContext) {
flattenOperation(result, operationContext);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@
import com.github._1c_syntax.bsl.languageserver.utils.Trees;
import com.github._1c_syntax.bsl.parser.BSLParser;
import com.github._1c_syntax.bsl.parser.BSLParserBaseVisitor;
import com.github._1c_syntax.bsl.parser.BSLParserRuleContext;
import edu.umd.cs.findbugs.annotations.Nullable;
import org.antlr.v4.runtime.ParserRuleContext;
import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.tree.ErrorNode;
import org.antlr.v4.runtime.tree.ParseTree;
Expand Down Expand Up @@ -358,10 +358,10 @@ private static List<AnnotationParameterDefinition> getAnnotationParameter(

private static AnnotationParameterDefinition getAnnotationParam(BSLParser.AnnotationParamContext o) {
var name = Optional.ofNullable(o.annotationParamName())
.map(BSLParserRuleContext::getText)
.map(ParserRuleContext::getText)
.orElse("");
var value = Optional.ofNullable(o.constValue())
.map(BSLParserRuleContext::getText)
.map(ParserRuleContext::getText)
.map(MethodSymbolComputer::excludeTrailingQuotes)
.orElse("");
var optional = o.constValue() != null;
Expand Down
Loading
Loading