kcl-lang / intellij-kcl Goto Github PK
View Code? Open in Web Editor NEWIntelliJ IDEA KCL Extension
Home Page: https://kcl-lang.io
IntelliJ IDEA KCL Extension
Home Page: https://kcl-lang.io
update README and dev doc
the project needs CI to guarantee quality
Dead link in the step 2:
Download the distribution from here and in IntelliJ IDEA...
Besides, the website of kcl can be modified to https://kcl-lang.io from https://kusionstack.io/docs/reference/lang/
Please answer these questions before submitting your issue. Thanks!
The kcl format menu item to be enabled and functional
The kcl format menu item is disabled.
Version: 0.6.0-20ab3eb4b9179219d6837a57f5d35286
Platform: aarch64-apple-darwin
GitCommit: 9286e955d4f40121568d7a725fec63f3ccc478be
plugin version: 0.1.15
provide an environment configuration based on github's dev container so that intellij-kcl developers could quickly set up their developing env.
https://github.com/kcl-lang/intellij-kcl/pull/12
in PR #12Is your feature request related to a problem? Please describe:
The release of the plugin is now done manually and that takes lots of effort and storage.
Describe the feature you'd like:
use a github workflow to automatically build and distribute plugins on each IntelliJ version after the main branch is tagged by a version tag.
Describe alternatives you've considered:
Teachability, Documentation, Adoption, Migration Strategy:
aciTags: DOCKER
stages: # 定义了一条pipeline
- 测试
- 构建发布包
PMD:
stage: 测试
plugin: PMD
pluginConfig:
encoding: UTF-8 # 编码设置
excludes: # 排除哪些项不统计PMD
- "src/main/gen/**"
checkRule: # 校验结果
- pmd1 = 0 && pmd2 = 0
单元测试:
stage: 测试
aciTags: DOCKER # 指定使用哪些runner
steps:
- plugin: clone
- plugin: shell
inputs:
image: reg.docker.alibaba-inc.com/kusion/idea-plugin-builder:gradle6.9.0-jdk8-idea2020.2 # 指定使用哪个image
command:
- |
export PLUGIN_VERSION=0.0.1 && export JDK_VERSION=8 && export IDEA_PLATFORM_VERSION="2020.2" && ./gradlew test
chmod +x ./Scripts/coverage.sh
echo ${WORKSPACE}
PROJECT_ROOT=${WORKSPACE} ./Scripts/coverage.sh
- plugin: coverage-client-upload-compass
inputs:
filePath: build/reports/cobertura.xml
publisher:
archiveArtifacts: 'build/jacocoHtml/,build/test-results/test/TEST-*.xml'
allowEmptyResults: true
junit: 'build/test-results/test/TEST-*.xml'
html:
index: build/jacocoHtml/index.html #(html的入口)
displayName: 覆盖率报告 #(html链接的展示名称 默认是 链接名称)
only:
triggerType:
- pullRequest
- push
2020.2 build:
stage: 构建发布包 # 本阶段执行两个步骤,一是执行项目源代码编译,二是进行镜像的构建
plugin: ANT-BUILD # 选用ANT-BUILD插件来驱动镜像构建
only:
triggerType:
- tagPush
pluginConfig:
image: reg.docker.alibaba-inc.com/kusion/idea-plugin-builder:gradle6.9.0-jdk8-idea2020.2
script:
- cd ${LINKB_WORKSPACE}
- export PLUGIN_VERSION=${ACI_COMMIT_REF_NAME}
- export JDK_VERSION=8
- export IDEA_PLATFORM_VERSION="2020.2"
- ./gradlew buildPlugin
- ./Scripts/ossutil64 cp ./build/distributions/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}.zip oss://antsys-kusion-dev/KCL_IDE/IntelliJ-IDEA/2020-2/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}.zip --endpoint=http://cn-hangzhou-alipay-b.oss-cdn.aliyun-inc.com --access-key-id=${ACI_VAR_kusion_oss_ak} --access-key-secret=${ACI_VAR_kusion_oss_sk}
outputs: # 纳入构建物列表
- name: "kcl-idea-plugin-${ACI_COMMIT_REF_NAME}-2020.2.zip"
desc: "KCL IDEA Plugin for IDEA 2020.2"
paths: [ "./build/distributions/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}.zip" ]
2020.3 & 2021.1 & 2021.2 & 2021.3 & 2022.1:
stage: 构建发布包
plugin: ANT-BUILD
only:
triggerType:
- tagPush
pluginConfig:
image: reg.docker.alibaba-inc.com/kusion/idea-plugin-builder:gradle6.9.0-jdk11-idea
script:
- cd ${LINKB_WORKSPACE}
- export PLUGIN_VERSION=${ACI_COMMIT_REF_NAME}
- export JDK_VERSION=11 && export IDEA_PLATFORM_VERSION="2020.3" && ./gradlew buildPlugin && mv ./build/distributions/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}.zip ./build/distributions/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}-2020.3.zip
- export JDK_VERSION=11 && export IDEA_PLATFORM_VERSION="2021.1" && ./gradlew buildPlugin && mv ./build/distributions/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}.zip ./build/distributions/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}-2021.1.zip
- export JDK_VERSION=11 && export IDEA_PLATFORM_VERSION="2021.2" && ./gradlew buildPlugin && mv ./build/distributions/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}.zip ./build/distributions/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}-2021.2.zip
- export JDK_VERSION=11 && export IDEA_PLATFORM_VERSION="2021.3" && ./gradlew buildPlugin && mv ./build/distributions/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}.zip ./build/distributions/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}-2021.3.zip
- export JDK_VERSION=11 && export IDEA_PLATFORM_VERSION="2022.1" && ./gradlew buildPlugin && mv ./build/distributions/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}.zip ./build/distributions/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}-2022.1.zip
- ./Scripts/ossutil64 cp ./build/distributions/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}-2020.3.zip oss://antsys-kusion-dev/KCL_IDE/IntelliJ-IDEA/2020-3/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}.zip --endpoint=http://cn-hangzhou-alipay-b.oss-cdn.aliyun-inc.com --access-key-id=${ACI_VAR_kusion_oss_ak} --access-key-secret=${ACI_VAR_kusion_oss_sk}
- ./Scripts/ossutil64 cp ./build/distributions/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}-2021.1.zip oss://antsys-kusion-dev/KCL_IDE/IntelliJ-IDEA/2021-1/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}.zip --endpoint=http://cn-hangzhou-alipay-b.oss-cdn.aliyun-inc.com --access-key-id=${ACI_VAR_kusion_oss_ak} --access-key-secret=${ACI_VAR_kusion_oss_sk}
- ./Scripts/ossutil64 cp ./build/distributions/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}-2021.2.zip oss://antsys-kusion-dev/KCL_IDE/IntelliJ-IDEA/2021-2/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}.zip --endpoint=http://cn-hangzhou-alipay-b.oss-cdn.aliyun-inc.com --access-key-id=${ACI_VAR_kusion_oss_ak} --access-key-secret=${ACI_VAR_kusion_oss_sk}
- ./Scripts/ossutil64 cp ./build/distributions/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}-2021.3.zip oss://antsys-kusion-dev/KCL_IDE/IntelliJ-IDEA/2021-3/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}.zip --endpoint=http://cn-hangzhou-alipay-b.oss-cdn.aliyun-inc.com --access-key-id=${ACI_VAR_kusion_oss_ak} --access-key-secret=${ACI_VAR_kusion_oss_sk}
- ./Scripts/ossutil64 cp ./build/distributions/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}-2022.1.zip oss://antsys-kusion-dev/KCL_IDE/IntelliJ-IDEA/2022-1/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}.zip --endpoint=http://cn-hangzhou-alipay-b.oss-cdn.aliyun-inc.com --access-key-id=${ACI_VAR_kusion_oss_ak} --access-key-secret=${ACI_VAR_kusion_oss_sk}
outputs: # 纳入构建物列表
- name: "kcl-idea-plugin-${ACI_COMMIT_REF_NAME}-2020.3.zip"
desc: "KCL IDEA Plugin for IDEA 2020.3"
paths: [ "./build/distributions/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}-2020.3.zip" ]
- name: "kcl-idea-plugin-${ACI_COMMIT_REF_NAME}-2021.1.zip"
desc: "KCL IDEA Plugin for IDEA 2021.1"
paths: [ "./build/distributions/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}-2021.1.zip" ]
- name: "kcl-idea-plugin-${ACI_COMMIT_REF_NAME}-2021.2.zip"
desc: "KCL IDEA Plugin for IDEA 2021.2"
paths: [ "./build/distributions/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}-2021.2.zip" ]
- name: "kcl-idea-plugin-${ACI_COMMIT_REF_NAME}-2021.3.zip"
desc: "KCL IDEA Plugin for IDEA 2021.3"
paths: [ "./build/distributions/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}-2021.3.zip" ]
- name: "kcl-idea-plugin-${ACI_COMMIT_REF_NAME}-2022.1.zip"
desc: "KCL IDEA Plugin for IDEA 2022.1"
paths: [ "./build/distributions/kcl-idea-plugin-${ACI_COMMIT_REF_NAME}-2022.1.zip" ]
notifications:
dingding监听消息:
type: DINGTALK
level: PIPELINE
when: ALWAYS
channels:
- https://oapi.dingtalk.com/robot/send?access_token=5d2b5c42f363ff9f6bc008fc25d6b54c0a3e1fd828c535d0a2553bc9f6362034
The go-to action from the import path to the kcl file/directories does not work with lsp supporting.
see #12 (comment)
I am using IntelliJ IDEA 2024.1 (Ultimate Edition)
Build #IU-241.14494.240, built on March 28, 2024.
When I try to install the plugin, I get the following error:
You can comment out the line: https://github.com/kcl-lang/intellij-kcl/blob/main/gradle.properties#L11C1-L11C25 and this way support all future versions.
Integrating the Language Server Protocol (LSP) into the KCL plugin for IntelliJ IDEA.
I would like to be able to install this plugin through the intellij marketplace
Right now you have to manually download the plugin and install the plugin from disk.
This greatly reduces the barrier for entry to use KCL in intellij. You wouldn't need to look for this github project. All you'd have to do is go to the plugin marketplace and look for KCL.
Also, the whole part about manual installation on the README page could be relegated to a separate markdown file, reducing the clutter in the main README, so that it could be focused on building and contributing to the project.
I upgrade my GoLand to latest version, and it raises this error
Plugin 'KCL' (version '0.1.15') is not compatible with the current version of the IDE, because it requires build 231 or older but the current build is GO-233.14015.113
Please answer these questions before submitting your issue. Thanks!
add godoc/coverage/license badges
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.