StevenLooman/magik-tools

GitHub: StevenLooman/magik-tools

Magik 编程语言的开发工具集,提供语言服务器、调试器、代码检查器和 SonarQube 集成,为 Smallworld 5 平台开发者打造完整的 IDE 支持环境。

Stars: 23 | Forks: 12

# Magik-tools `Magik-tools` 是 Smallworld 5 平台使用的 Magik 编程语言工具集合。它提供以下工具: * Language server * Debug adapter * Linter * Typing linter * SonarQube plugin 本产品并未经过充分测试,也未达到生产就绪状态。请自行承担使用风险,实际效果可能因情况而异。 ## 组件 本项目由多个组件组成。 ### SonarQube 插件 #### 安装 构建完成后,artifact/jar 将在 `sonar-magik-plugin/target/sonar-magik-plugin-.jar` 处生成。 将插件 (`sonar-magik-plugin-.jar`) 复制到您的 `sonarqube/extensions/plugins` 目录。重新启动 Sonar 以激活插件。 预构建的 artifacts/jars 可以在 [`magik-tools/releases`](https://github.com/StevenLooman/magik-tools/releases) 找到。 #### 分析项目 使用 [sonar-scanner](https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner) 来分析您的项目。存储在 `sonar-project.properties` 中的示例配置如下: ``` sonar.projectKey=test:test_project sonar.projectName=Test project sonar.sources=modules/ sonar.language=magik sonar.coverageReportPaths=coverage.xml ``` ### Magik Linter Magik 的 linter 位于 [`magik-lint`](magik-lint) 目录中。有关更多信息,请参见 [`magik-lint/README.md`](magik-lint/README.md)。 ### Magik Typed Linter Magik 的类型检查器/linter 位于 [`magik-typed-lint`](magik-typed-lint) 目录中。有关更多信息,请参见 [`magik-typed-lint/README.md`](magik-typed-lint/README.md)。 ### Language server Magik 的 language server 位于 [`magik-language-server`](magik-language-server) 目录中。有关更多信息,请参见 [`magik-language-server/README.md`](magik-language-server/README.md)。 ### Debug adapter Smallworld 5/Magik 的 debug adapter 位于 [`magik-debug-adapter`](magik-debug-adapter) 目录中。有关更多信息,请参见 [`magik-debug-adapter/README.md`](magik-debug-adapter/README.md)。 ## 开发 ### 构建 您可以使用 maven 构建插件,如下所示: ``` $ mvn clean verify test package [INFO] Scanning for projects... ... ``` 不运行测试进行构建: ``` $ mvn -Dmaven.test.skip=true clean verify test package [INFO] Scanning for projects... ... ``` Java 源代码的自动格式化: ``` $ mvn spotless:apply [INFO] Scanning for projects... ... ``` ### 单元测试 您可以使用 maven 运行单元测试,如下所示: ``` $ mvn clean test [INFO] Scanning for projects... ... ``` 结果将显示在控制台上。 ### 变更 变更使用 [Towncier](https://towncrier.readthedocs.io/) 记录。一旦创建了新版本,将使用 towncrier 将变更日志写入 `CHANGES.md`。 要创建新的变更日志条目,请运行: ``` $ towncrier create -c "You description here, in Markdown" ..md ... ``` 变更类型可以是以下之一: * `feature`:表示新功能。 * `bugfix`:表示错误修复。 * `doc`:表示文档改进。 * `removal`:表示弃用或移除公共 API。 * `misc`:工单已关闭,但用户对此不感兴趣。 当引入破坏性变更时,请在变更日志条目之前添加以下片段: ``` **Breaking change** ``` 然后会在 ``changes`` 目录中创建一个新文件。向该文件添加变更的简短描述。 ### 发布 调用位于 `.github/scripts/release.sh` 的脚本,并将新版本作为参数。例如: ``` $ .github/scripts/release.sh 0.12.0 ... ``` 这将设置所有相关组件的版本,提交更改并对其进行标记。不会执行推送操作。 要继续开发,请将 `-SNAPSHOT` 附加到版本后。例如,`0.12.0-SNAPSHOT`。 ### 更新 使用 [Dependabot](https://docs.github.com/en/code-security/dependabot) 来保持版本最新。 如果必须手动更新版本,请运行以下命令以检查是否有任何新版本的 maven-dependencies 可用: ``` $ mvn versions:display-dependency-updates ... ``` ### SonarCloud 该项目可以在 [SonarCloud](https://sonarcloud.io/project/overview?id=StevenLooman_magik-tools) 找到。 ## 贡献 有关如何贡献的说明,请参见 [`CONTRIBUTING.md`](CONTRIBUTING.md)。 ## 许可证 本项目根据 GPLv3 授权,请参见 [`LICENSE.md`](LICENSE.md)。 ## 商业用途 允许商业用途。本产品并未经过充分测试。请自行承担使用风险,实际效果可能因情况而异。 如果您确实使用了它——无论是商业用途还是非商业用途——请务必通知我。
标签:DAP, GE Smallworld, IDE 支持, JS文件枚举, Linting, LSP, Magik, Smallworld, SOC Prime, SonarQube 插件, VSCode 扩展, 云安全监控, 域名枚举, 域名枚举, 开发工具, 类型检查, 编程语言工具, 语言服务器, 调试适配器, 静态分析