How to develop Cangjie applications based on Jetbrains Fleet

概述

仓颉编程语言是一种面向全场景应用开发的通用编程语言,可以兼顾开发效率和运行性能,并提供良好的编程体验。

Jetbrains Fleet 是一款简洁的代码编辑器,具备清爽的 UI、AI 功能以及适用于大多数主要语言的关键内置功能。

今天,我们带领大家在Linux mint 22.1上基于Jetbrains Fleet完成一次仓颉编程语言的编程之旅。

开始

准备

仓颉

我们这次基于Cangjie 0.53.18展开,如果没有安装Cangjie 0.53.18的小伙伴,请参阅下面文章

Jetbrains Fleet

没有安装Jetbrains Fleet的小伙伴们,可以参阅下面的文章

项目结构

这里,我们基于命令行创建以下项目结构

mkdir ~/Public/project/fleet/cangjie
cd ~/Public/project/fleet/cangjie
mkdir -p src target
touch src/hello.cj
tee src/hello.cj <<-EOF
// hello.cj
main() {
    println("你好,仓颉")
}
EOF

执行完上述命令以后,你将得到如下目录

lwk@qwfys:~/Public/project/fleet/cangjie$ tree
.
├── src
│   └── hello.cj
└── target

3 directories, 1 file
lwk@qwfys:~/Public/project/fleet/cangjie$ 

其中,文件hello.cj内容如下:

// hello.cj
main() {
    println("你好,仓颉")
}

配置

我们基于命令工作目录中创建目录.fleet,并创建文件并初始化文件.fleet/run.json

mkdir -p .fleet
touch .fleet/run.json
tee .fleet/run.json <<-EOF
{
    "configurations": [
        {
            "name": "run",
            "type": "command",
            "workingDir": "$PROJECT_DIR$",
            "program": "$PROJECT_DIR$/target/hello",
            "dependsOn": [
                "list"
            ]
        },
        {
            "name": "list",
            "type": "command",
            "workingDir": "$PROJECT_DIR$",
            "program": "ls",
            "args": [
                "-la",
                "target"
            ],
            "dependsOn": [
                "build"
            ]
        },
        {
            "name": "build",
            "type": "command",
            "workingDir": "$PROJECT_DIR$",
            "program": "cjc",
            "args": [
                "src/hello.cj",
                "-o",
                "target/hello"
            ],
            "dependsOn": [
                "clean"
            ]
        },
        {
            "type": "command",
            "name": "clean",
            "workingDir": "$PROJECT_DIR$",
            "program": "rm",
            "args": [
                "-rf",
                "target/*"
            ],
        }
    ]
}
EOF

其中,run.json文件内容如下:

{
    "configurations": [
        {
            "name": "run",
            "type": "command",
            "workingDir": "$PROJECT_DIR$",
            "program": "$PROJECT_DIR$/target/hello",
            "dependsOn": [
                "list"
            ]
        },
        {
            "name": "list",
            "type": "command",
            "workingDir": "$PROJECT_DIR$",
            "program": "ls",
            "args": [
                "-la",
                "target"
            ],
            "dependsOn": [
                "build"
            ]
        },
        {
            "name": "build",
            "type": "command",
            "workingDir": "$PROJECT_DIR$",
            "program": "cjc",
            "args": [
                "src/hello.cj",
                "-o",
                "target/hello"
            ],
            "dependsOn": [
                "clean"
            ]
        },
        {
            "type": "command",
            "name": "clean",
            "workingDir": "$PROJECT_DIR$",
            "program": "rm",
            "args": [
                "-rf",
                "target/*"
            ],
        }
    ]
}

Fleet

打开项目

启动Jetbrains 的下一代编辑器Fleet,系统会出现如下画面:
在这里插入图片描述
点击Open ...,系统将会弹出一个对话框,供我们选择项目工作目录,我们这里选择目录~/Public/project/fleet/cangjie,打开后界面如下所示:
在这里插入图片描述
我们可以双击源码文件hello.cj查看源码内容,如下图所示:
在这里插入图片描述

运行

在这里插入图片描述
当快捷键Ctrl+R或者点击图中顶部工具栏中向右倒立的小三角图标(如上图所示)时,系统会为我们打开运行与调试对话框。
在这里插入图片描述
我们在这里看到的runbuildcleanlist命令都是我们在运行配置文件.fleet/run.json中配置的命令。选择下拉列表中的Run,这个时候,运行结果就会出现在正方的Run内容区域,如下图所示:
在这里插入图片描述
我们看到,程序输出了我们期待已久的你好,仓颉

小结

今天,我们带领大家完成了在Linux mint21.1系统上基于Jetbrains Fleet运行华为推出的新型编程语言仓颉的小实验。这里,大家需要着重注意以下几点:

  • OS

这里,我们是在Linux mint 22.1上完成的实验,考虑到Linux mint 22.x是基于Ubuntu 24.04的,所以这里的内容其实也是适用于Ubuntu 24.04的。

  • Fleet

Jetbrains Fleet是一个全能编辑器,也是一个智能化的多语言开发集成环境,它与微软的Visual Studio Code是竞争关系,我个人觉得它比vs code好用。