Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes & bumps #3233

Merged
merged 3 commits into from
Jan 24, 2024
Merged

Fixes & bumps #3233

merged 3 commits into from
Jan 24, 2024

Conversation

theshadowco
Copy link
Member

@theshadowco theshadowco commented Jan 23, 2024

Описание

  • обновлены зависимости
  • sq fixes

Связанные задачи

Closes

Чеклист

Общие

  • Ветка PR обновлена из develop
  • Отладочные, закомментированные и прочие, не имеющие смысла участки кода удалены
  • Изменения покрыты тестами
  • Обязательные действия перед коммитом выполнены (запускал команду gradlew precommit)

Для диагностик

  • Описание диагностики заполнено для обоих языков (присутствуют файлы для обоих языков, для русского заполнено все подробно, перевод на английский можно опустить)

Дополнительно

Summary by CodeRabbit

  • Обновления

    • Обновлены версии зависимостей для улучшения стабильности и производительности.
  • Улучшения в диагностике

    • Улучшена точность диагностических сообщений благодаря пересмотру алгоритмов и параметров.
  • Рефакторинг

    • Повышена читаемость и поддерживаемость кода за счет оптимизации условных выражений и методов.
  • Улучшения интерфейса

    • Добавлены новые режимы совместимости, расширяющие возможности использования продукта с разными версиями платформы.
  • Исправления ошибок

    • Исправлены незначительные ошибки в текстах и коде, которые могли влиять на удобство использования.
  • Тестирование

    • Обновлены тестовые случаи для повышения точности и надежности проверок.
  • Документация

    • Внесены корректировки в комментарии к коду для улучшения понимания функционала.

Copy link

coderabbitai bot commented Jan 23, 2024

Walkthrough

В проекте был проведен рефакторинг кода: обновлены зависимости, улучшена читаемость и поддерживаемость методов, аннотации @Getter добавлены и удалены в соответствии с потребностями классов. Также использование var для локальных переменных стало стандартом, улучшены условные операторы и паттерн-матчинг, а также усовершенствовано использование коллекций и потоков.

Changes

Файлы Описание изменений
build.gradle.kts Обновлены версии зависимостей.
.../cfg/..., .../codeactions/..., .../color/..., .../configuration/..., .../context/computer/..., .../context/symbol/description/... Улучшена читаемость и поддерживаемость методов, удален импорт Collectors, добавлено использование var и toList().
.../diagnostics/... Рефакторинг методов с использованием паттерн-матчинга, обновлены параметры диагностики, улучшено использование var и toList().
.../providers/..., .../references/model/..., .../reporters/..., .../utils/..., .../utils/expressiontree/... Оптимизация кода с использованием var, паттерн-матчинга и Java 16+ фич.
src/test/java/com/github/_1c_syntax/... Использование многострочных строковых литералов для улучшения читаемости тестов.

🐇

В полях кода цветет весна,
var и toList() - как красна!
Рефакторинг, словно танец,
Кролик празднует с букетом @Getter'ов в лапке. 🌷🎉

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share

Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit-tests for this file.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit tests for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository from git and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit tests.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • The JSON schema for the configuration file is available here.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/coderabbit-overrides.v2.json

CodeRabbit Discord Community

Join our Discord Community to get help, request features, and share feedback.

@ghost
Copy link

ghost commented Jan 23, 2024

👇 Click on the image for a new way to code review

Review these changes using an interactive CodeSee Map

Legend

CodeSee Map legend

Copy link

Qodana Community for JVM

17 new problems were found

Inspection name Severity Problems
Statement with empty body 🔶 Warning 5
'@Serial' annotation could be used 🔶 Warning 4
Constant values 🔶 Warning 3
Mismatched query and update of collection 🔶 Warning 2
Class is exposed outside of its visibility scope 🔶 Warning 1
Nullability and data flow problems 🔶 Warning 1
Mismatched read and write of array 🔶 Warning 1

💡 Qodana analysis was run in the pull request mode: only the changed files were checked
☁️ View the detailed Qodana report

Contact Qodana team

Contact us at qodana-support@jetbrains.com

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review Status

Actionable comments generated: 9

Configuration used: CodeRabbit UI

Commits Files that changed from the base of the PR and between 7054dbb and fcfad23.
Files selected for processing (72)
  • build.gradle.kts (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/cfg/CfgBuildingParseTreeVisitor.java (8 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/cfg/ControlFlowGraph.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/cfg/StatementsBlockWriter.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/AnalyzeCommand.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/ExtractStructureConstructorSupplier.java (6 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/codelenses/RunTestCodeLensSupplier.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/color/ConstructorColorInformationSupplier.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/Language.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/LanguageServerConfiguration.java (7 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/CognitiveComplexityComputer.java (5 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/CyclomaticComplexityComputer.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/context/symbol/description/DescriptionReader.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractFindMethodDiagnostic.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractMultilingualStringDiagnostic.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AllFunctionPathMustHaveReturnDiagnostic.java (5 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CodeAfterAsyncCallDiagnostic.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommentedCodeDiagnostic.java (6 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CreateQueryInCycleDiagnostic.java (5 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DuplicatedInsertionIntoCollectionDiagnostic.java (8 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyCodeBlockDiagnostic.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FunctionOutParameterDiagnostic.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseDuplicatedCodeBlockDiagnostic.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseDuplicatedConditionDiagnostic.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IncorrectLineBreakDiagnostic.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/LatinAndCyrillicSymbolInWordDiagnostic.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MagicDateDiagnostic.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MagicNumberDiagnostic.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MissingSpaceDiagnostic.java (4 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MissingTemporaryFileDeletionDiagnostic.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RefOveruseDiagnostic.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RewriteMethodParameterDiagnostic.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SetPermissionsForNewObjectsDiagnostic.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SpaceAtStartCommentDiagnostic.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TransferringParametersBetweenClientAndServerDiagnostic.java (4 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnusedLocalMethodDiagnostic.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnusedParametersDiagnostic.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingServiceTagDiagnostic.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/WrongUseOfRollbackTransactionMethodDiagnostic.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/infrastructure/DiagnosticBeanPostProcessor.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticCompatibilityMode.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticInfo.java (4 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticParameterInfo.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticTag.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/folding/CodeBlockFoldingRangeSupplier.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/inlayhints/SourceDefinedMethodCallInlayHintSupplier.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/SelectionRangeProvider.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/SymbolProvider.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/references/model/Symbol.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/references/model/SymbolOccurrence.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/GenericIssueReport.java (4 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/JUnitTestSuites.java (5 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/TSLintReportEntry.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/Trees.java (16 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/expressiontree/DefaultNodeEqualityComparer.java (3 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/expressiontree/ExpressionTreeBuildingVisitor.java (14 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/cfg/ControlFlowGraphBuilderTest.java (12 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/context/DocumentContextTest.java (1 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/context/ServerContextTest.java (1 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/context/symbol/description/MethodDescriptionTest.java (3 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AllFunctionPathMustHaveReturnDiagnosticTest.java (2 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommentedCodeDiagnosticTest.java (1 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ConsecutiveEmptyLinesDiagnosticTest.java (10 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DiagnosticInfosTest.java (1 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IdenticalExpressionsDiagnosticTest.java (3 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/InvalidCharacterInFileDiagnosticTest.java (1 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MissingTempStorageDeletionDiagnosticTest.java (4 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/hover/MethodSymbolMarkupContentBuilderTest.java (3 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/hover/VariableSymbolMarkupContentBuilderTest.java (5 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/FormatProviderTest.java (2 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/references/ReferenceResolverTest.java (1 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/utils/ExpressionParseTreeRewriterTest.java (1 hunks)
Files skipped from review due to trivial changes (31)
  • build.gradle.kts
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/cfg/ControlFlowGraph.java
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/cfg/StatementsBlockWriter.java
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/color/ConstructorColorInformationSupplier.java
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/CognitiveComplexityComputer.java
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractMultilingualStringDiagnostic.java
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommentedCodeDiagnostic.java
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DuplicatedInsertionIntoCollectionDiagnostic.java
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/EmptyCodeBlockDiagnostic.java
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseDuplicatedCodeBlockDiagnostic.java
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IfElseDuplicatedConditionDiagnostic.java
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/LatinAndCyrillicSymbolInWordDiagnostic.java
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MissingSpaceDiagnostic.java
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UnusedParametersDiagnostic.java
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/UsingServiceTagDiagnostic.java
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/infrastructure/DiagnosticBeanPostProcessor.java
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/folding/CodeBlockFoldingRangeSupplier.java
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/references/model/Symbol.java
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/Trees.java
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/cfg/ControlFlowGraphBuilderTest.java
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/context/symbol/description/MethodDescriptionTest.java
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AllFunctionPathMustHaveReturnDiagnosticTest.java
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/DiagnosticInfosTest.java
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/IdenticalExpressionsDiagnosticTest.java
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/InvalidCharacterInFileDiagnosticTest.java
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MissingTempStorageDeletionDiagnosticTest.java
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/hover/MethodSymbolMarkupContentBuilderTest.java
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/hover/VariableSymbolMarkupContentBuilderTest.java
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/providers/FormatProviderTest.java
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/references/ReferenceResolverTest.java
  • src/test/java/com/github/_1c_syntax/bsl/languageserver/utils/ExpressionParseTreeRewriterTest.java
Additional comments: 59
src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/Language.java (1)
  • 32-32: @Getter аннотация применена к уровню перечисления, что позволяет генерировать геттеры для всех полей перечисления. Это изменение упрощает код и улучшает его читаемость.
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticTag.java (1)
  • 24-24: Добавление аннотации @Getter на уровне перечисления DiagnosticTag позволяет автоматически генерировать геттер для поля description, что уменьшает количество шаблонного кода.
src/main/java/com/github/_1c_syntax/bsl/languageserver/references/model/SymbolOccurrence.java (1)
  • 58-67: Изменения в методе compareTo улучшают читаемость кода за счет использования final var и правильного форматирования.
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticCompatibilityMode.java (2)
  • 53-55: Добавление новых режимов совместимости (8.3.22, 8.3.23, 8.3.24) в перечисление DiagnosticCompatibilityMode расширяет поддержку различных версий платформы 1С:Предприятие.
  • 57-57: Использование аннотации @Getter для поля compatibilityMode упрощает доступ к данным полям и уменьшает количество шаблонного кода.
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/WrongUseOfRollbackTransactionMethodDiagnostic.java (1)
  • 66-66: Замена collect(Collectors.toList()) на toList() упрощает код и делает его более читаемым, используя возможности Java 16.
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FunctionOutParameterDiagnostic.java (2)
  • 53-60: Использование var для объявления переменной parameters и замена collect(Collectors.toList()) на toList() улучшает читаемость и упрощает код.
  • 66-66: Замена явного объявления типа Map<String, BSLParserRuleContext> на var улучшает читаемость кода.
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticParameterInfo.java (1)
  • 34-34: Применение аннотации @Getter на уровне класса DiagnosticParameterInfo уменьшает количество шаблонного кода и улучшает читаемость.
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/SetPermissionsForNewObjectsDiagnostic.java (1)
  • 58-58: Изменение в присвоении defaultValue в аннотации DiagnosticParameter с "" + NAMES_FULL_ACCESS_ROLE на NAMES_FULL_ACCESS_ROLE улучшает читаемость и корректность кода.
src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CommentedCodeDiagnosticTest.java (1)
  • 84-86: Упрощение добавления значений в thresholdVariants улучшает читаемость тестового кода.
src/main/java/com/github/_1c_syntax/bsl/languageserver/reporters/TSLintReportEntry.java (3)
  • 36-49: Изменение severityMap на SEVERITY_MAP и его объявление как private static final соответствует конвенции именования констант в Java и улучшает читаемость кода.
  • 57-57: Использование SEVERITY_MAP вместо severityMap для получения ruleSeverity улучшает читаемость и корректность кода.
  • 77-77: Добавление аннотации @Getter к внутреннему классу EntryPosition уменьшает количество шаблонного кода.
src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/SymbolProvider.java (2)
  • 58-58: Переименование supportedVariableKinds в SUPPORTED_VARIABLE_KINDS соответствует конвенции именования констант в Java.
  • 90-94: Рефакторинг метода isSupported с использованием выражения switch улучшает читаемость и упрощает код.
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AbstractFindMethodDiagnostic.java (1)
  • 86-89: Рефакторинг метода getMessage с использованием сопоставления с образцом (instanceof) улучшает читаемость и упрощает код.
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MagicNumberDiagnostic.java (1)
  • 55-55: Изменение в присвоении defaultValue в аннотации DiagnosticParameter с "" + DEFAULT_AUTHORIZED_NUMBERS на DEFAULT_AUTHORIZED_NUMBERS улучшает читаемость и корректность кода.
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MagicDateDiagnostic.java (2)
  • 72-72: Изменение в присвоении defaultValue в аннотации DiagnosticParameter с "" + DEFAULT_AUTHORIZED_DATES на DEFAULT_AUTHORIZED_DATES улучшает читаемость и корректность кода.
  • 112-118: Добавление имени параметра в условие if в методе checkExclAddDiagnostic улучшает читаемость и понимание кода.
src/main/java/com/github/_1c_syntax/bsl/languageserver/providers/SelectionRangeProvider.java (2)
  • 132-141: Метод getParentContext использует pattern matching для instanceof, что улучшает читаемость кода.
  • 204-204: Метод ifBranchMatchesIfStatement использует pattern matching для instanceof, что улучшает читаемость кода.
src/test/java/com/github/_1c_syntax/bsl/languageserver/context/DocumentContextTest.java (1)
  • 140-140: Изменение условия в тесте testRegionsAdjustingCompute с проверки наличия методов у символов региона на проверку, что методы не пусты, может быть связано с изменением логики в коде, который тестируется. Убедитесь, что это изменение отражает новую логику и не нарушает существующие тесты.
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/AllFunctionPathMustHaveReturnDiagnostic.java (5)
  • 116-116: Использование toList() вместо collect(Collectors.toList()) улучшает читаемость и производительность.
  • 138-143: Использование pattern matching для instanceof улучшает читаемость кода.
  • 167-167: Использование pattern matching для instanceof улучшает читаемость кода.
  • 180-180: Использование pattern matching для instanceof улучшает читаемость кода.
  • 192-192: Использование pattern matching для instanceof улучшает читаемость кода.
src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/ConsecutiveEmptyLinesDiagnosticTest.java (1)
  • 102-114: > 📝 NOTE

This review was outside the diff hunks and was mapped to the diff hunk with the greatest overlap. Original lines [42-283]

В тестах ConsecutiveEmptyLinesDiagnosticTest были изменены строки с тестовыми данными. Проверьте, что изменения соответствуют ожидаемому поведению диагностики и что тесты по-прежнему корректно отражают сценарии использования.

src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/TransferringParametersBetweenClientAndServerDiagnostic.java (2)
  • 89-89: Использование var для локальных переменных улучшает читаемость кода.
  • 138-138: Использование toList() вместо collect(Collectors.toList()) улучшает читаемость и производительность.
src/main/java/com/github/_1c_syntax/bsl/languageserver/inlayhints/SourceDefinedMethodCallInlayHintSupplier.java (1)
  • 200-202: Использование pattern matching для instanceof улучшает читаемость кода.
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/MissingTemporaryFileDeletionDiagnostic.java (5)
  • 123-123: Использование toList() вместо collect(Collectors.toList()) улучшает читаемость и производительность.
  • 129-131: Использование pattern matching для instanceof улучшает читаемость кода.
  • 139-139: Использование pattern matching для instanceof улучшает читаемость кода.
  • 194-196: Использование pattern matching для instanceof улучшает читаемость кода.
  • 204-204: Использование pattern matching для instanceof улучшает читаемость кода.
src/main/java/com/github/_1c_syntax/bsl/languageserver/cli/AnalyzeCommand.java (1)
  • 206-207: Использование var для локальных переменных diagnostics и metrics улучшает читаемость кода и соответствует современным практикам Java. Однако, стоит убедиться, что в остальной части кода не требуется явное указание типа для корректной работы.
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/metadata/DiagnosticInfo.java (1)
  • 52-52: Добавление аннотации @Getter для поля diagnosticClass уменьшает количество шаблонного кода и улучшает читаемость. Это соответствует принципам Lombok и является хорошей практикой.
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RewriteMethodParameterDiagnostic.java (1)
  • 185-185: Замена collect(Collectors.toList()) на toList() упрощает код и делает его более читаемым, так как toList() является частью стандартной библиотеки Java начиная с версии 16.
src/main/java/com/github/_1c_syntax/bsl/languageserver/configuration/LanguageServerConfiguration.java (3)
  • 149-149: Использование var для переменной pathFromConfiguration улучшает читаемость кода и соответствует современным практикам Java.
  • 163-163: Использование var для переменной fileConfiguration улучшает читаемость кода и соответствует современным практикам Java.
  • 191-191: Замена collect(Collectors.toList()) на toList() упрощает код и делает его более читаемым, так как toList() является частью стандартной библиотеки Java начиная с версии 16.
src/main/java/com/github/_1c_syntax/bsl/languageserver/context/computer/CyclomaticComplexityComputer.java (3)
  • 204-204: Использование var для переменной methodNameContext улучшает читаемость кода и соответствует современным практикам Java.
  • 237-237: Комбинирование проверки типа и приведения типа в одном выражении instanceof упрощает код и делает его более читаемым.
  • 266-266: Использование var для переменной splitter улучшает читаемость кода и соответствует современным практикам Java.
src/main/java/com/github/_1c_syntax/bsl/languageserver/utils/expressiontree/ExpressionTreeBuildingVisitor.java (5)
  • 134-134: Использование instanceof с переменной шаблона terminalNode упрощает код и делает его более читаемым, также уменьшает количество приведений типов.
  • 159-160: Использование var для параметров метода visitParenthesis улучшает читаемость кода и соответствует современным практикам Java.
  • 247-252: Преобразование обычного switch в выражение switch улучшает читаемость кода и делает его более компактным.
  • 369-369: Использование var в цикле for для переменной parameter улучшает читаемость кода и соответствует современным практикам Java.
  • 384-395: Использование Objects.requireNonNull для проверки на null перед использованием оператора улучшает надежность кода, предотвращая возможные NullPointerException.
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RefOveruseDiagnostic.java (1)
  • 191-196: Использование метода toList() вместо collect(Collectors.toList()) является корректным изменением, учитывая, что проект использует Java 16, где этот метод был добавлен в стандартную библиотеку.
src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/CreateQueryInCycleDiagnostic.java (2)
  • 34-34: Добавление аннотации @Getter к внутреннему классу Scope является корректным изменением, так как это уменьшает количество шаблонного кода и автоматически генерирует геттеры для всех полей класса.
  • 123-125: Рефакторинг проверки instanceof с использованием шаблона сопоставления является улучшением читаемости кода и соответствует современным практикам Java.
src/main/java/com/github/_1c_syntax/bsl/languageserver/context/symbol/description/DescriptionReader.java (1)
  • 239-241: Изменение метода trim на strip для удаления начальных и конечных пробелов в строках является корректным, так как strip является более новым методом, который учитывает Unicode и предоставляет более точное удаление пробелов.
src/main/java/com/github/_1c_syntax/bsl/languageserver/cfg/CfgBuildingParseTreeVisitor.java (4)
  • 150-155: Удаление импорта java.util.stream.Collectors является корректным, если этот импорт больше не используется в файле.
  • 150-155: Условие внутри цикла while проверяет, является ли blockTail пустым блоком, и если да, то пропускает его. Это улучшение читаемости и поддерживаемости кода.
  • 499-499: Метод isStatementLevelPreproc корректно рефакторится для улучшения читаемости.
  • 505-507: Метод popPreprocCondition улучшен для лучшей читаемости и поддерживаемости.

Copy link

github-actions bot commented Jan 23, 2024

Qodana Community for JVM

16 new problems were found

Inspection name Severity Problems
Statement with empty body 🔶 Warning 5
'@Serial' annotation could be used 🔶 Warning 4
Constant values 🔶 Warning 2
Mismatched query and update of collection 🔶 Warning 2
Class is exposed outside of its visibility scope 🔶 Warning 1
Nullability and data flow problems 🔶 Warning 1
Mismatched read and write of array 🔶 Warning 1

💡 Qodana analysis was run in the pull request mode: only the changed files were checked
☁️ View the detailed Qodana report

Contact Qodana team

Contact us at qodana-support@jetbrains.com

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review Status

Actionable comments generated: 1

Configuration used: CodeRabbit UI

Commits Files that changed from the base of the PR and between fcfad23 and cf1a821.
Files selected for processing (2)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/ExtractStructureConstructorSupplier.java (6 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RefOveruseDiagnostic.java (3 hunks)
Files skipped from review as they are similar to previous changes (1)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/RefOveruseDiagnostic.java
Additional comments: 4
src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/ExtractStructureConstructorSupplier.java (4)
  • 80-87: Удаление использования java.util.stream.Collectors и замена на метод toList() улучшает читаемость и сокращает код.
  • 103-103: Проверьте, что замена явного типа на var не влияет на понимание кода, особенно если тип переменной не очевиден из контекста.
Verification successful

Тип переменной maybeDoCall определён как Optional<TerminalNode>. Это означает, что использование var в данном контексте не влияет на понимание кода, так как метод findTerminalNodeContainsPosition явно возвращает Optional<TerminalNode>, и это можно понять из названия метода и контекста его использования.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Поиск использования var, чтобы убедиться, что типы переменных понятны из контекста.
rg --type java 'var ' src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/ExtractStructureConstructorSupplier.java

Length of output: 1685



Script:

#!/bin/bash
# Поиск объявления переменной maybeDoCall для определения её типа
rg --type java 'maybeDoCall' src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/ExtractStructureConstructorSupplier.java

Length of output: 317



Script:

#!/bin/bash
# Поиск объявления переменной maybeDoCall с явным типом
rg --type java -B 2 'var maybeDoCall =' src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/ExtractStructureConstructorSupplier.java

Length of output: 275



Script:

#!/bin/bash
# Поиск сигнатуры метода findTerminalNodeContainsPosition для определения возвращаемого типа
rg --type java 'findTerminalNodeContainsPosition' src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/ExtractStructureConstructorSupplier.java -A 1

Length of output: 277



Script:

#!/bin/bash
# Поиск определения метода findTerminalNodeContainsPosition во всем проекте
rg --type java 'findTerminalNodeContainsPosition' -A 1

Length of output: 2359

* 117-117: Использование `var` для локальных переменных может улучшить читаемость, но важно следить за тем, чтобы типы оставались понятными. * 134-134: Изменения в цикле для создания текста редактирования выглядят корректными, но стоит проверить, что форматирование строк соответствует стандартам проекта.
Verification successful

Изменения в цикле для создания текста редактирования используют String.format для форматирования строк, что соответствует общепринятому стилю проекта, основываясь на анализе других файлов. Форматирование строк в предоставленном фрагменте кода выглядит корректным и соответствует стандартам проекта.

Scripts Executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Проверка соответствия форматирования строк стандартам проекта.
rg --type java 'String.format' src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/ExtractStructureConstructorSupplier.java

Length of output: 250



Script:

#!/bin/bash
# Поиск использования String.format во всех Java файлах проекта для определения стандартов форматирования строк.
rg --type java 'String.format' -g '*.java'

Length of output: 8150

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review Status

Actionable comments generated: 3

Configuration used: CodeRabbit UI

Commits Files that changed from the base of the PR and between cf1a821 and 0d08d8c.
Files selected for processing (2)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/ExtractStructureConstructorSupplier.java (5 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FunctionOutParameterDiagnostic.java (3 hunks)
Files skipped from review as they are similar to previous changes (1)
  • src/main/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/FunctionOutParameterDiagnostic.java
Additional comments: 1
src/main/java/com/github/_1c_syntax/bsl/languageserver/codeactions/ExtractStructureConstructorSupplier.java (1)
  • 80-87: Использование toList() без полного импорта может привести к ошибкам компиляции, если метод не был статически импортирован.

Проверьте, что статический импорт toList() присутствует в файле или добавьте его, чтобы избежать ошибок компиляции.

Copy link

sonarcloud bot commented Jan 24, 2024

Quality Gate Passed Quality Gate passed

The SonarCloud Quality Gate passed, but some issues were introduced.

8 New issues
0 Security Hotspots
85.6% Coverage on New Code
1.8% Duplication on New Code

See analysis details on SonarCloud

@theshadowco theshadowco merged commit 640a2c5 into develop Jan 24, 2024
33 checks passed
@theshadowco theshadowco deleted the feature/sq_and_mdclasses_013rc1 branch January 24, 2024 04:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant