diff --git a/README.md b/README.md index 0b8ba54..6194736 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ - openKylin Framework SIG组月度例会 * 欢迎参加月度例会,反馈问题,讨论Kylin-Code及其插件规划和发展思路、讨论IDE发展方向 * 例会时间:每个月的第2个周二下午14:00,如遇到节假日,顺延到下一个周二 - * 例会会议号通常会在openKylin官网公布([点此链接,在主页找到“社区日程”,点击日历的对应日期查看](https://www.openkylin.top/index-cn.html)) + * 例会会议号通常会在[openKylin extensions-repo readme文件中更新](https://gitee.com/openkylin/extensions-repo) - 如果无gitee账号,可以将问题发邮件反馈,邮箱列表如下 * muruichao@kylinos.cn * quanzhuo@kylinos.cn @@ -46,4 +46,4 @@ ## 本仓库目录说明 - KylinIDETeam:插件汇总,里面的目录以插件name字段命名,每个目录的readme中有代码仓库链接(如有)和下载链接 - inst-configs-repo:开发环境快速部署功能的配置文件存放目录 -- user-guide:用户帮助文档存放目录 \ No newline at end of file +- user-guide:用户帮助文档存放目录 diff --git a/user-guide/files/C-C++开发.md b/user-guide/files/C-C++开发.md index a185821..e706a4c 100644 --- a/user-guide/files/C-C++开发.md +++ b/user-guide/files/C-C++开发.md @@ -1,330 +1,60 @@ # C-C++开发 -- [环境准备](#1-环境准备) -- [C-C++项目创建与编辑](#2-cc项目创建与编辑) -- [编译与运行](#3编译与运行) -- [调试](#4调试) +- [1.环境准备](#1环境准备) +- [2.C/C++项目(工程)操作](#2cc项目工程操作) +- [3.编辑、构建、调试、运行配置](#3编辑构建调试运行配置) -# 1 环境准备 +# 1.环境准备 ## 1.1 通过开发环境快速部署安装 - 点击帮助菜单中的“打开开发环境快速部署”子菜单,选择C/C++选项进行安装,将安装系统软件源中的编译调试工具和C/C++基础支持插件 - +- 具体可参考[开发环境快速部署章节](./开发环境快速部署.md) ## 1.2 手动安装 ## 1.2.1 安装C/C++基础支持插件 -- Clangd插件安装(该clangd插件ID是KylinIDETeam.vscode-clangd,插件的发布者是KylinIdeTeam。该插件为C/C++提供补全、导航和检查等语法功能) - - 启动IDE基础平台 - - 点击活动栏中的插件图标,调出插件视图 - - 在插件视图中找到KYLIN-IDE推荐的插件,选择Kylin-IDE(KylinCode)插件分类->C语言支持 - - 点击Clangd进行安装 +- 编辑支持:Kylin Clangd插件(该插件为C/C++提供补全、导航和检查等语法功能,kylinideteam.vscode-clangd) + * 插件安装方法如下,或参考[如何检索和安装插件章节](./如何检索和安装插件.md),其他插件安装方法类似,不再赘述 + - 启动IDE基础平台 + - 点击活动栏中的插件图标,调出插件视图 + - 在插件视图中找到KYLIN-IDE推荐的插件,选择Kylin-IDE(KylinCode)插件分类->C语言支持 + - 点击Kylin Clangd进行安装 -- Native Debug插件安装(ID:KylinIdeTeam.debug,该插件提供C/C++调试功能) - - 启动IDE基础平台 - - 点击活动栏中的插件图标,调出插件视图。 - - 在插件视图中找到KYLIN-IDE推荐的插件,选择Kylin-IDE(KylinCode)插件分类->C语言支持 - - 点击Native Debug安装 +- 调试支持:C/C++ Debug(gdb)插件 或 Kylin Native Debug插件 + * C/C++ Debug(gdb)插件(kylinideteam.cppdebug) + - 优点:调试功能体验优于Kylin Native Debug + - 缺点:插件体积大,下载慢,最好直接从[仓库下载](https://gitee.com/quanzhuo/cpp-debug/releases);仅支持X86和ARM架构 + * Kylin Native Debug插件(kylinideteam.debug) + - 优点:支持架构多,包括X86、ARM、LoongArch等;插件体积小,下载快 + - 缺点:调试功能相比C/C++ Debug插件略有不足 + * 建议X86、ARM架构优先使用C/C++ Debug(gdb)插件;其他架构使用Kylin Native Debug插件;资源受限条件下使用Kylin Native Debug插件 +- 项目创建 + * Kylin Project Manager插件(kylinideteam.project-manager):提供基础项目创建功能,提供项目操作列表以方便执行配置、构建、调试、运行等操作 + +- CMake工程支持 + * CMake Tools插件(ms-vscode.cmake-tools):推荐使用的开源插件,自动配置CMake项目的编辑、构建、调试,通过菜单方便操作 + * CMake插件(twxs.cmake):推荐使用的开源插件,CMake Tools插件依赖插件,安装CMake Tools插件后,会自动下载安装该插件 + * CMake IntelliSence插件(kylinideteam.cmake-intellisence):自研插件,对CMake语法支持更佳 + +- 若开发Qt工程,请参考[Qt开发支持章节](#Qt开发.md) ## 1.2.2 安装系统软件依赖 -- 安装clangd(Clangd代码编辑插件依赖) +- 安装clangd(Kylin Clangd代码编辑插件依赖) * 命令举例:`apt install clangd`或`yum install clang-tools-extra` + * 建议尽量安装较新版本,功能更强。目前系统默认安装clangd-10,可以手动安装更新版本,例如`sudo apt install clangd-11` - 安装编译构建工具 * 命令举例:`apt install build-essential cmake ninja-build`或`yum install gcc gcc-c++ cmake ninja-build` - 安装gdb(调试插件依赖) * 命令举例:`apt install gdb`或`yum install gdb` -# 2 C/C++项目创建与编辑 +# 2.C/C++项目(工程)操作 +## 2.1 已有项目 +- 对于已有项目,在IDE基础平台中中打开项目文件夹 + * 点击文件主菜单 -> 打开文件夹 +## 2.1 新建项目 +- 安装Kylin Project Manager插件(安装方法见上文) +- 新建项目方法见[项目管理章节](./项目管理.md) -## 2.1 项目创建 - -### 2.1.1 C/C++程序简单创建 - -- 创建c项目 - - 在终端创建文件夹CProject - - 启动通用集成开发环境,点击文件->打开文件夹,选择CProject - - 点击新建文件图标,创建hello.c - ![图3 C程序创建](resources/c-c++/cproject-new.gif) -- 创建c++项目 - - 在终端创建文件夹C++Project - - 启动通用集成开发环境,点击文件->打开文件夹,选择C++Project - - 点击新建文件图标,创建hello.cpp - ![图4 C++程序创建](resources/c-c++/c++project-new.gif) - -### 2.1.2 通过项目创建插件创建c/c++程序 - -- 插件商店点击筛选器插件->点击Kylin-IDE(KylinCode)插件分类->点击项目创建->点击安装项目管理插件Kylin Project Manager,插件安装后点击资源管理器视图,进入项目操作区创建C/C++程序,创建具体操作详情见:[项目管理插件](项目管理.md) - ![图5 项目创建插件创建程序](resources/c-c++/visix-new-project.gif) - -## 2.2 编辑 - -### 2.2.1 C语言编辑 - -- 在新建的hello.c文件中输入C程序代码 - - ```c - #include - #include - int main(void) - { - printf("Hello World!\n"); - return 0; - } - ``` - - 编辑区支持C程序语言高亮、补全、导航等功能: - - 语法高亮,观察编辑区程序关键字、头文件等是否着色(语义高亮功能需系统软件clangd软件包9以上版本,目前LoongArch平台的clangd软件未完全支持该功能,LoongArch平台仅支持变量或者函数名等定义处高亮) - ![图6](resources/c-c++/c-highlight.png) - - 补全,鼠标键入关键字等部分字符,将会提示补全关键字信息 - ![图7](resources/c-c++/c-complete.png) - - 导航,鼠标放置调用的函数右键,点击转到定义,将跳转到该函数的定义处 - ![图8](resources/c-c++/c-jump.gif) - -### 2.2.2 C++编辑 - -- 在新建的hello.cpp文件中输入C++程序代码 - - ```cpp - #include - - int main(int argc, char *argv[]) - { - std::cout << "Hello world!" << std::endl; - } - ``` - - 与C类似,编辑区支持C++程序语言高亮、补全、导航等功能,LoongArch平台仅支持变量或者函数名等定义处高亮) - -# 3.编译与运行 - -## 3.1 C/C++简单程序编译与运行 - -### 3.1.1 编译配置 - -- 如果用户编译类似上述[CProject和C++Project](#211-cc程序简单创建)简单项目,需要创建运行配置文件tasks.json,tasks.json文件被存储在.vscode文件夹内。创建方法如下: - - - 点击菜单中的终端->配置任务->使用模板创建tasks.json文件->others - - tasks.json文件创建成功 - 创建的tasks.json默认内容如下: - - ```json - { - "version": "2.0.0", - "tasks": [ - { - "label": "echo", - "type": "shell", - "command": "echo Hello" - } - ] - } - ``` - - - C程序修改tasks.json文件内容如下:(C++程序配置可参考C) - - ```json - { - "version": "2.0.0", - "tasks": [ - { - "label": "build_c", - "type": "shell", - "linux": { - "command": "gcc", - "args": [ - "-g", - "hello.c", - "-o", - "hello" - ] - } - }, - { - "label": "run", - "type": "shell", - "linux": { - "command": "", - "args": ["./hello"] - } - } - ] - - } - ``` - -- 如果用项目创建插件中创建的C程序(例如参考"项目管理"下的"3.1、创建C/C++项目"[3.1、创建C/C++项目](项目管理.md#31创建cc项目)),在项目的.vscode目录下有运行配置文件tasks.json,如果没有需要创建。配置内容参考“项目管理”下的“4.1、配置C/C++项目”:[4.1、配置C/C++项目](项目管理.md#41配置cc项目) -- 若配置上述[QT项目](#223-qt代码编辑支持和开发库头文件配置)tasks.json文件可参考以下配置: - - ```json - { - "version": "2.0.0", - "tasks": [ - { - "label": "qmake", - "type": "shell", - "options": { - "cwd": "${workspaceFolder}/build/" - }, - "command": "qmake", - "args": [ - ".." - ] - }, - { - "label": "build", - "type": "shell", - "options": { - "cwd": "${workspaceFolder}/build/" - }, - "command": "make", - "dependsOn":["qmake"] - }, - { - "label": "run", - "type": "shell", - "options": { - "cwd": "${workspaceFolder}/build/" - }, - "command": "./${workspaceFolderBasename}", - "dependsOn":["build"] - }, - { - "label": "clean", - "type": "shell", - "options": { - "cwd": "${workspaceFolder}/build/" - }, - "command": "make distclean" - } - ] - } - ``` - - 此外,需在qmake项目根目录下需配置qtdemo.pro文件 - -- tasks.json中常用参数: - - label: task名称 - - type:配置类型 - - command:用来指定要执行的程序 - - args字段用于记录执行command需要涉及到的参数 - - cwd: cd到工程中指定的目录 - - dependsOn:填写依赖的任务,需先执行该任务。例如在运行run时先执行build,在run配置中可参考: "dependsOn":["build"] - - miDebuggerPath:代表调试器(GDB)所在路径 - - preLaunchTask:在运行program前要做的前置任务,比如编译,task.json就是用于定义前置任务 - -- 下面介绍一些常用的变量: - - ${workspaceFolder}:项目文件夹在 IDE中打开的路径 - - ${workspaceFolderBasename}:在 IDE中打开的项目文件夹名称 - - ${file}:当前开打开(激活)的文件 - - ${relativeFile}:相对于 {workspaceFolder} 的文件路径 - - ${fileBasename}:当前打开文件的名称 - - ${fileBasenameNoExtension}:当前打开文件的名称,不带扩展名的 - - ${fileExtname}:当前打开文件的扩展名 - - ${fileDirname}:当前打开文件的文件夹名称 - - ${cwd} -任务运行器启动时的当前工作目录 - - ${lineNumber} -活动文件中当前选定的行号 - - ${selectedText} -活动文件中当前选定的文本 - - ${execPath} -运行IDE可执行文件的路径 - - ${defaultBuildTask} -默认构建任务的名称 - - -### 3.1.2 进行编译 - -- 点击菜单中的终端->运行任务->build->继续而不扫描任务输出,运行任务 - - ![图10 编译](resources/c-c++/c-build.gif) - -- 在终端输出运行结果(例如CProject编译运行结果) - - ![图11 编译结果](resources/c-c++/C-build-result.png) - -### 3.1.3 运行 - -- 点击菜单中的终端->运行任务->run->继续而不扫描任务输出,运行任务 -- 在终端输出运行结果(例如CProject结果) - - ![图12 C运行结果](resources/c-c++/c-run-result.png) - -# 4.调试 - -## 4.1 C/C++程序调试 - -- 调试配置 -项目调试之前需进行调试配置,资源管理器点击打开已创建的C或C++程序,点击活动栏运行和调试图标进入视图,点击创建launch.json文件,命令行中选择GDB调试器 -launch.json文件创建成功后默认配置如下: - - C程序修改launch.json文件内容如下: - - ```json - { - "version": "0.2.0", - "configurations": [ - { - "name": "Debug ", - "type": "gdb", - "request": "launch", - "printCalls": true, - "showDevDebugOutput": true, - "target": "./hello", - "cwd": "${workspaceFolder}", - "valuesFormatting": "parseText", - "preLaunchTask": "build_c" - } - ] - } - ``` - - C++程序修改launch.json文件内容如下: - - ```json - { - - "version": "0.2.0", - "configurations": [ - { - "name": "Debug ", - "type": "gdb", - "request": "launch", - "printCalls": true, - "showDevDebugOutput": true, - "target": "./hello", - "cwd": "${workspaceFolder}", - "valuesFormatting": "parseText", - "preLaunchTask": "build_cpp" - } - ] - } - ``` - - - 调试常用参数介绍: - - - program:代表要运行的二进制文件所在路径 - - - miDebuggerPath:代表调试器(GDB)所在路径 - - environment: 环境变量设置 - - - preLaunchTask:在运行program前要做的前置任务,比如编译,task.json就是用于定义前置任务 - - -- 调试 - - 设置断点 - 打开c/c++程序(hello.c或者hello.cpp),在编辑区程序中输出信息的一行的最左侧单击,出现红点则断点设置成功 - - 再次进入调试侧边栏,点击开始调试按钮(或者键盘按F5),进入调试功能 - - 程序在断点处暂停,点击调试导航栏单步调试(或者单步进入),左侧侧边栏中可观察调用堆栈、变量等信息 - - C程序调试如下: - ![图13 C调试](resources/c-c++/c-launch.gif) - - C++程序调试如下: - ![图14 C++调试](resources/c-c++/cpp-launch.gif) - -## 4.2 C/C++程序反向调试 - -- 反向调试功能需系统软件gdb支持反向调试,目前X86、LoongArch平台的gdb软件未完全支持该功能,仅ARM平台可以使用该功能 -- 设置断点 - 打开c/c++程序(hello.c或者hello.cpp),在编辑区程序中输出信息的一行的最左侧单击,出现红点则断点设置成功 -- 再次进入调试侧边栏,点击开始调试按钮(或者键盘按F5),进入调试功能 -- 程序在断点处暂停,点击编辑区右上角Code-Debug:Start reverse debugging按钮 -- 点击调试导航栏单步调试-点击反向调试-点击停止 - - C程序反向调试如下: - ![图15 C反向调试](resources/c-c++/c-launch-reverse.gif) - - C++程序反向调试如下: - ![图16 C++反向调试](resources/c-c++/cpp-launch-reverse.gif) +## 3.编辑、构建、调试、运行配置 +- 编辑支持需要了解Kylin Clangd插件和系统软件clangd的基本配置方法,具体见如下章节 + * [任意C/C++工程,如何使跳转等编辑功能正常工作(clangd)](./任意C-C++项目如何使跳转等编辑功能正常工作.md) +- 项目的构建、调试、运行配置请参考以下章节 + * [如何配置工程的构建、调试、运行](./如何配置工程的构建-调试-运行.md) +- C/C++ Debug(gdb)插件 和 Kylin Native Debug插件的launch.json具体如何配置,见插件readme + * 在最左侧点击插件图标,打开插件视图,在列表中找到插件条目,点击插件条目即可查看插件readme \ No newline at end of file diff --git a/user-guide/files/Java开发.md b/user-guide/files/Java开发.md index 60d7d90..98873e5 100644 --- a/user-guide/files/Java开发.md +++ b/user-guide/files/Java开发.md @@ -1,256 +1,146 @@ -# Java开发使用说明 +# Java开发支持 +## 插件选择 +- 根据系统上能够安装的JDK版本和Kylin-IDE版本做选择。注意以下两套Java支持插件组会相互冲突,只能二选一 +- 如果系统上能够安装JDK17或以上版本,Kylin-IDE版本为1.1.0以上,推荐使用较主流的开源插件: + * Extesion Pack for Java(vscjava.vscode-java-pack),这套开源插件以redhat提供的Java语言支持插件为基础,是插件市场中较为主流的Java开发插件。通过安装此插件可安装Java插件组,包括以下插件,也可以单独安装: + - Language Support for Java™ by Red Hat(redhat.java):Java语言编辑支持插件 + - Debugger for Java(vscjava.vscode-java-debug):Java调试支持插件 + - Test Runner for Java(vscjava.vscode-java-test):Java测试支持插件 + - Maven for Java(vscjava.vscode-maven):Maven构建支持插件 + - Gradle for Java(vscjava.vscode-gradle):Gradle构建支持插件 + - Project Manager for Java(vscjava.vscode-java-dependency):Java项目创建 + - IntelliCode(此插件非开源,可以卸载或不安装。VisualStudioExptTeam.vscodeintellicode):AI代码补全 + * Spring Boot Extension Pack(vmware.vscode-boot-dev-pack):Spring Boot支持插件组,安装此插件将安装以下插件: + - Spring Boot Tools(vmware.vscode-spring-boot):Spring Boot配置文件编辑支持,Java编辑支持(依赖上文redhat.java插件) + - Spring Initializr Java Support(vscjava.vscode-spring-initializr):Spring Boot项目创建支持 + - Spring Boot Dashboard(vscjava.vscode-spring-boot-dashboard):管理workspace中的Spring Boot项目(依赖vmware.vscode-spring-boot、redhat.java、vscjava.vscode-java-debug) + * 上述插件可以在插件市场中检索到 -## 1、概述 +- 如果系统上能够安装JDK11或以上版本,或Kylin-IDE版本为1.1.0以下,或其他插件API较老旧版本的VSCode,推荐使用: + * Java Pack(kylinideteam.vscode-java-pack),此插件组基于较低版本开源Java支持插件改造以支持JDK11 + - Java(kylinideteam.java):Java语言编辑支持插件 + - Debugger for Java(kylinideteam.vscode-java-debug):Java调试支持插件 + - Test Runner for Java(kylinideteam.vscode-java-test):Java测试支持插件 + - Maven for Java(kylinideteam.vscode-maven):Maven构建支持插件 + - Gradle for Java(kylinideteam.vscode-gradle):Gradle构建支持插件 + - Project Manager for Java(kylinideteam.vscode-java-dependency):Java项目创建 + * 上述插件可以在插件市场中检索到:在插件视图中找到KYLIN-IDE推荐的插件,选择Kylin-IDE(KylinCode)插件分类->Java语言支持 - 本文档介绍用户如何进行Java项目开发。 +## 系统软件安装 +- 安装JDK + * 命令举例 + - `sudo apt install openjdk-11-jdk` + - `sudo apt install openjdk-17-jdk` + - `sudo yum install java-11-openjdk-devel` - - 包括java编辑、编译、运行、调试等过程。 +- Maven与JDK版本有对应关系 + * 在互联网上容易检索到JDK版本对应的最低maven版本 + * 在JDK17环境中,系统上的maven软件包可能不符合要求,需要从maven官网或从其他渠道安装高版本maven软件 -## 2、环境准备 +## JDK配置 +- 请区分插件需要的JDK运行环境和项目开发使用JDK环境 +- 插件需要的JDK运行环境 + * Java支持插件中使用了Java编写的程序,例如Java编辑支持插件的语言服务就是使用Java编写的,因此插件运行需要一个JDK环境 + * 通常情况下,只要安装了JDK11或以上版本,可以不用再手动配置`java.jdt.ls.java.home` + * `java.jdt.ls.java.home`配置方法 + * 在设置中搜索`java.jdt.ls.java.home` + - 修改“用户”设置,则对用户下的所有工程生效 + - 修改“工作区”设置,仅对当前工作区项目生效,如果“工作区”设置与“用户”设置不同,则“工作区”设置优先于“用户”设置 + * 编辑配置文件,`"java.jdt.ls.java.home": "JDK路径根目录"` + * 如果未设置`java.jdt.ls.java.home`,则按以下顺序做搜索,找到一个满足最低环境的(JDK11)JDK + * `JDK_HOME` 环境变量 + * `JAVA_HOME` 环境变量 + * 当前系统路径 +- 项目开发使用的JDK环境 + * 项目开发使用的JDK环境是指项目编译、调试使用的JDK环境 + * 项目开发使用的JDK环境可以配置多个,在设置中搜索`java.configuration.runtimes`, 编辑json配置文件,其中`default`字段用于指定一个默认的JDK环境,会根据默认或项目的源级别选择最佳版本,setting.json文件配置举例: + ```json + "java.configuration.runtimes": [ + { + "name": "JavaSE-1.8", + "path": "/usr/lib/jvm/java-8-openjdk-amd64", + }, + { + "name": "JavaSE-11", + "path": "/usr/lib/jvm/java-11-openjdk-amd64", + "default": true + }, + { + "name": "JavaSE-17", + "path": "/usr/lib/jvm/java-17-openjdk-amd64", + }, + ] + ``` + - 注意`name`字段只能填指定值,填错时有黄色波浪线提示,可以将鼠标放在波浪线上,会有指定值说明 + * 在不配置`java.configuration.runtimes`的情况下,也可以通过菜单配置JDK默认运行环境 + - 方法1:在Java项目中,资源管理器视图下方,有Java Project配置小窗口,点击小窗口右上角的“...”按钮,选择Configure Java Runtime,即可选择默认的JDK + - 方法2:或ctrl+shift+P打开命令面板,搜索Configure Java Runtime,即可选择默认的JDK + - 注意:当在setting.json中配置了`java.configuration.runtimes`后,将以setting.json配置为准,上述方法将不起作用 +- 系统中安装了多个JDK版本,默认使用哪个 + * 系统中通常可以安装多个JDK版本,通过alternatives机制,系统默认Java相关命令会关联到某一个JDK中 + - 通过`ls -lh`命令能够看到`/usr/bin/java`链接到了`/etc/alternatives/java`,它指向了一个JDK版本中的`java`命令 + * 修改`/etc/alternatives/`下的链接不推荐直接修改链接的方法,而使用update-alternatives命令 + - 例如,修改`/usr/bin/java`指向,执行`sudo update-alternatives --config java`,输入序号即可完成修改 + * 常用的主要是`java`、`javac`命令,其他java相关命令可以根据需要修改指向,命令举例 + - `sudo update-alternatives --config java` + - `sudo update-alternatives --config javac` +- 注意:若系统中安装了多个JDK,task.json中,command字段中若需调用javac、java命令,有些方法可以区分调用的是哪个JDK中的命令 + * 方法1:调用命令时写命令的绝对路径,直接写明从哪个JDK中调用 + * 方法2:使用update-alternatives命令修改好系统默认的相关命令,在命令行中确认修改生效,task.json中即可直接使用java或javac命令 -- 系统安装Java开发工具包(JDK 11+)。如果您还没有安装JDK,请从官方源安装,或者自行下载安装。 +## 项目(工程)管理 +- 已有项目 + * 打开项目文件夹,Java支持插件会对项目进行解析 - ``` shell - sudo apt install openjdk-11-jdk - ``` -- 在IDE软件中安装Java扩展。 - - 启动IDE软件 - - 点击活动栏中的插件图标,调出插件视图。 - - 在插件视图中找到KYLIN-IDE推荐的插件,选择Kylin-IDE(KylinCode)插件分类->Java语言支持 +- 创建项目 + * 安装项目创建插件Kylin Project Manager(kylinideteam.project-manager),注意spring boot项目仅在JDK17环境中支持 + * 安装插件后,入口:文件主菜单-->新建项目 + * Java类项目创建主要基于开源插件提供支持 + * 详细见[项目管理章节](./项目管理) - ![图1](./resources/java/extension-list.png "Java语言支持插件查看") - - 通过以上步骤找到java语言相关插件Java Pack (Support openjdk11 runtime) - - Java Pack (Support openjdk11 runtime)插件安装: - - 点击插件右下角的安装图标进行安装操作。 - - 会自动安装java相关支持插件,包括: - - - Java Maven (Support openjdk11 runtime) - - Java Debug (Support openjdk11 runtime) - - Java Dependency (Support openjdk11 runtime) - - Java Test (Support openjdk11 runtime) - - Java Pack (Support openjdk11 runtime) - - Java Gradle (Support openjdk11 runtime) - - - 安装成功后,重新加载窗口 - -## 3、快速开始 - -### 3.1、创建Java项目 - -- 参考“项目管理”下的“3.2、创建简单Java项目”:[创建Java项目](项目管理.md#3.2、创建简单Java项目) - -### 3.2、配置Java项目 - -- 完成创建后,打开testJava项目 -- 参考“项目管理”下的“4.2、配置Java项目”:[配置Java项目](项目管理.md#4.2、配置Java项目) - -### 3.3、编辑 - -- 打开src/main.java文件 - - ```java - public class main { - public static void main(String[] args) throws Exception { - System.out.println("Hello, World!"); - } - } - - ``` - -#### 3.3.1、代码提示 - - IDE软件提供了代码补全、代码着色、参数信息等。如图所示 - - ![图代码补全](./resources/java/intellisense.png) - -#### 3.3.2、代码导航 - - 在编辑区的右键菜单中可以看到支持的代码导航,比如转到定义、转到实现、转到引用等 - - ![图代码导航](./resources/java/right-menu.png) - -### 3.4、编译、运行 - -在项目的.vscode目录下有运行配置文件tasks.json,如果没有需要创建。 - -创建方法如下: - -- 点击菜单中的终端->配置任务->使用模板创建tasks.json文件->others -- tasks.json文件创建成功 - - 创建的tasks.json默认内容如下: - - ```json - { - "version": "2.0.0", - "tasks": [ +- 项目配置 + * 需要了解基本的task.json、launch.json配置方法,见[如何配置工程的构建、调试、运行章节](./如何配置工程的构建-调试-运行.md) + * 在项目操作区中(左侧资源管理器视图下方的折叠菜单)可执行构建操作或task中的其他任务 + * 一个简单Java项目task.json的配置例子如下 + ```json { - "label": "echo", - "type": "shell", - "command": "echo Hello" + "label": "build", + "type": "shell", + "options": { + "cwd": "${workspaceFolder}" + }, + "command": "/usr/lib/jvm/java-11-openjdk-amd64/bin/javac", + "args": [ + "src/main.java", + "-sourcepath", + "src", + "-classpath", + "${config:java.project.referencedLibraries}", + "-d", + "${config:java.project.outputPath}" + ] + }, + { + "label": "run", + "type": "shell", + "options": { + "cwd": "${workspaceFolder}" + }, + "command": "java", + "args": [ + "-cp", + "${config:java.project.outputPath}", + "main" + ], + "dependsOn": [ + "javac" + ] } - ] - } - ``` + ``` -- 修改tasks.json文件,修改后内容如下: - - ```json - - { - "label": "build", - "type": "shell", - "options": { - "cwd": "${workspaceFolder}" - }, - "command": "javac", - "args": [ - "src/main.java", - "-sourcepath", - "src", - "-classpath", - "${config:java.project.referencedLibraries}", - "-d", - "${config:java.project.outputPath}" - ] - }, - { - "label": "run", - "type": "shell", - "options": { - "cwd": "${workspaceFolder}" - }, - "command": "java", - "args": [ - "-cp", - "${config:java.project.outputPath}", - "main" - ], - "dependsOn": [ - "javac" - ] - } - ``` - -#### 3.4.1、编译 - -- 点击“项目操作区”的“编译”按钮;或点击菜单中的终端->运行任务->build->继续而不扫描任务输出,运行build任务 -- 在终端输出运行结果 - - ![编译结果](./resources/java/build.png "编译结果") - -#### 3.4.2、运行 - -- 点击“项目操作区”的“运行”按钮;或点击菜单中的终端->运行任务->run->继续而不扫描任务输出,运行run任务 - -- 在终端输出运行结果 - - ![运行结果](./resources/java/run.png "运行结果") - -### 4、调试 - -#### 4.1、一键调试 - - 对于一个简单的Java程序文件的调试,不需要进行配置,支持一键调试。 - -- test.java文件左侧点击鼠标左键添加断点 -- 如图,点击左侧活动栏中的调试按钮,切换到调试视图 - - ![图2](./resources/java/debug-sample.png "调试视图") -- 点击运行和调试按钮启动调试 - - ![图3](./resources/java/debug-sample2.png "启动调试") -- 如图此种简单调试,没有配置 - -#### 4.2、自定义调试 - -打开一个Java项目(本文以Calculator计算器例程)为例。 -在项目的.vscode目录下有运行配置文件tasks.json,如果没有需要创建。 -创建方法如下: - -- 点击菜单中的运行->添加配置 - - ![图4](./resources/java/add-launch.png) - -- launch.json文件创建成功 - - 创建的launch.json默认内容如下: - - ```json - { - "version": "0.2.0", - "configurations": [ - { - "type": "java", - "name": "Launch Current File", - "request": "launch", - "mainClass": "${file}" - }, - { - "type": "java", - "name": "Launch Calculator", - "request": "launch", - "mainClass": "Calculator", - "projectName": "calculator_cb38a00" - } - ] - } - ``` - - 将launch.json修改为: - - ```json - { - "version": "0.2.0", - "configurations": [ - { - "type": "java", - "name": "Launch Current File", - "request": "launch", - "mainClass": "${file}", - "args": "" - }, - { - "type": "java", - "name": "Launch Calculator", - "request": "launch", - "mainClass": "${file}", - "projectName": "${workspaceFolderBasename}" - } - ] - } - ``` - - 该launch.json文件配置可以调试 Calculator,其他项目用户需要根据具体情况修改launch.json文件 - -- 在Calculator.java文件左侧第20行点击鼠标左键添加断点; -- 在Calculator.java文件左侧第40行点击鼠标左键添加断点; - - ![调试](./resources/java/debug-project.png "调试视图") - -- 点击“项目操作区”的“调试”按钮,切换到调试视图 -- 点击Launch main启动调试 - - 第一个断点,停在Calculator.java 20行处,如图,可以查看当前参数、堆栈信息、断点信息、变量等。 - - ![图2](./resources/java/debug-project-step-1.png "调试中断") - - - 点击继续,如图: - - ![图2](./resources/java/debug-operation.png "调试第一步") - - - 程序运行成功,显示应用视图: - - ![图2](./resources/java/debug-project-step-2.png "运行") - - - 点击1,点击+号,程序中断,如图: - - ![图2](./resources/java/debug-project-step-3.png "调试中断") - - - 点击2,点击=号,得到结果3.0,如图: - - ![图2](./resources/java/debug-project-step-4.png "调试中断") - - 以上就是Java项目的调试过程。 +## 调试 +- 一键调试 + * 对于简单的Java程序文件的调试,不需要进行配置,点击调试按钮或菜单可以直接调试 +- 对于较复杂的Java程序,需要配置launch.json + * 配置方法见[如何配置工程的构建、调试、运行章节](./如何配置工程的构建-调试-运行.md)和Java Debug插件readme + - 在最左侧点击插件图标,打开插件视图,在列表中找到插件条目,点击插件条目即可查看插件readme \ No newline at end of file diff --git a/user-guide/files/Qt开发.md b/user-guide/files/Qt开发.md index b148d6d..82b2e1e 100644 --- a/user-guide/files/Qt开发.md +++ b/user-guide/files/Qt开发.md @@ -28,8 +28,8 @@ * Qt Support插件,安装此插件后会安装其他依赖插件。此插件对CMake类型的Qt项目导入、创建、新文件添加做支持,并对qrc文件编辑提供支持 * 对于使用CMake作为构建工具的项目,简称CMake项目,引入了微软开源插件CMake Tools,便于控制CMake构建、调试流程 * 仅在使用Kylin-IDE时支持QMake类型项目。对于使用QMake作为构建工具的项目,简称QMake项目,仿照CMake Tools开发了QMake Tools插件,便于控制QMake构建、调试流程。 目前QMake类型项目不支持项目创建、新文件添加功能 - * 代码编辑,提供高亮、语法检查、代码跳转、代码补全等功能。当使用Kylin-IDE时,将使用KylinIdeTeam改造的Clangd插件;当使用VSCode时,将使用Cpp Tools插件 - * 调试,当使用Kylin-IDE时,将使用KylinIdeTeam改造的Native Debug插件;当使用VSCode时,将使用Cpp Tools插件 + * 代码编辑,提供高亮、语法检查、代码跳转、代码补全等功能。使用KylinIdeTeam改造的Kylin Clangd插件 + * 调试,将使用KylinIdeTeam改造的C/C++ Debug(gdb)或Kylin Native Debug插件 * UI设计,需要安装Qt Designer,调用Qt Designer完成UI设计 ## 安装 @@ -43,13 +43,18 @@ * 使用Kylin-IDE时,安装的插件组 - kylinideteam.qt-support (版本需大于等于 0.3.4) - kylinideteam.qmake-tools - - ms-vscode.cmake-tools - kylinideteam.vscode-clangd (版本需大于等于 0.2.13) - kylinideteam.debug (版本需大于等于 0.2.6) + - kylinideteam.cppdebug + - ms-vscode.cmake-tools + - twxs.cmake * 使用VSCode时,安装的插件组(不支持QMake类型项目) - KylinIdeTeam.qt-support + - kylinideteam.vscode-clangd (版本需大于等于 0.2.13) + - kylinideteam.cppdebug + - kylinideteam.debug (版本需大于等于 0.2.6) - ms-vscode.cmake-tools - - ms-vscode.cpptools + - twxs.cmake - 安装方式2:在[openKylin extensions-repo仓库](https://gitee.com/openkylin/extensions-repo/tree/master/KylinIDETeam)中,根据插件名称找到下载链接,下载安装 #### 依赖软件安装 @@ -59,6 +64,7 @@ * 方法二:逐个安装依赖软件(如需sudo请自行添加) - 安装clangd(Clangd代码编辑插件依赖) * 命令举例:`apt install clangd`或`yum install clang-tools-extra` + * 建议尽量安装较新版本,功能更强。目前系统默认安装clangd-10,可以手动安装更新版本,例如`sudo apt install clangd-11` - 安装编译构建工具 * 命令举例:`apt install build-essential cmake ninja-build`或`yum install gcc gcc-c++ cmake ninja-build` - 安装gdb(调试插件依赖) diff --git a/user-guide/files/resources/kylin-remote-dev/openx11.png b/user-guide/files/resources/kylin-remote-dev/openx11.png new file mode 100644 index 0000000..343d579 Binary files /dev/null and b/user-guide/files/resources/kylin-remote-dev/openx11.png differ diff --git a/user-guide/files/resources/kylin-remote-dev/x11prompt.png b/user-guide/files/resources/kylin-remote-dev/x11prompt.png new file mode 100644 index 0000000..4132a03 Binary files /dev/null and b/user-guide/files/resources/kylin-remote-dev/x11prompt.png differ diff --git a/user-guide/files/resources/project-manager/pm-build.png b/user-guide/files/resources/project-manager/pm-build.png old mode 100644 new mode 100755 index 294b1e8..660c8d5 Binary files a/user-guide/files/resources/project-manager/pm-build.png and b/user-guide/files/resources/project-manager/pm-build.png differ diff --git a/user-guide/files/resources/project-manager/pm-create-project-c-1st-buildtools.png b/user-guide/files/resources/project-manager/pm-create-project-c-1st-buildtools.png old mode 100644 new mode 100755 diff --git a/user-guide/files/resources/project-manager/pm-create-project-c-1st-type.png b/user-guide/files/resources/project-manager/pm-create-project-c-1st-type.png old mode 100644 new mode 100755 index 2b294f2..40e2705 Binary files a/user-guide/files/resources/project-manager/pm-create-project-c-1st-type.png and b/user-guide/files/resources/project-manager/pm-create-project-c-1st-type.png differ diff --git a/user-guide/files/resources/project-manager/pm-create-project-c-2nd-page.png b/user-guide/files/resources/project-manager/pm-create-project-c-2nd-page.png old mode 100644 new mode 100755 index a4eb9e0..69ea3ba Binary files a/user-guide/files/resources/project-manager/pm-create-project-c-2nd-page.png and b/user-guide/files/resources/project-manager/pm-create-project-c-2nd-page.png differ diff --git a/user-guide/files/resources/project-manager/pm-create-project-c-3rd-page.png b/user-guide/files/resources/project-manager/pm-create-project-c-3rd-page.png old mode 100644 new mode 100755 index 02ff23f..b02af4f Binary files a/user-guide/files/resources/project-manager/pm-create-project-c-3rd-page.png and b/user-guide/files/resources/project-manager/pm-create-project-c-3rd-page.png differ diff --git a/user-guide/files/resources/project-manager/pm-create-project-c-created-ask.png b/user-guide/files/resources/project-manager/pm-create-project-c-created-ask.png new file mode 100755 index 0000000..08ba7d2 Binary files /dev/null and b/user-guide/files/resources/project-manager/pm-create-project-c-created-ask.png differ diff --git a/user-guide/files/resources/project-manager/pm-create-project-c-created-notice.png b/user-guide/files/resources/project-manager/pm-create-project-c-created-notice.png old mode 100644 new mode 100755 diff --git a/user-guide/files/resources/project-manager/pm-create-project-c-created-window.png b/user-guide/files/resources/project-manager/pm-create-project-c-created-window.png old mode 100644 new mode 100755 index 0b3daf2..b1d73b0 Binary files a/user-guide/files/resources/project-manager/pm-create-project-c-created-window.png and b/user-guide/files/resources/project-manager/pm-create-project-c-created-window.png differ diff --git a/user-guide/files/resources/project-manager/pm-create-project-command.png b/user-guide/files/resources/project-manager/pm-create-project-command.png old mode 100644 new mode 100755 diff --git a/user-guide/files/resources/project-manager/pm-create-project-java-1st-page.png b/user-guide/files/resources/project-manager/pm-create-project-java-1st-page.png old mode 100644 new mode 100755 index 73cf82c..6a6d56b Binary files a/user-guide/files/resources/project-manager/pm-create-project-java-1st-page.png and b/user-guide/files/resources/project-manager/pm-create-project-java-1st-page.png differ diff --git a/user-guide/files/resources/project-manager/pm-create-project-java-created-window.png b/user-guide/files/resources/project-manager/pm-create-project-java-created-window.png old mode 100644 new mode 100755 index a8d75ec..e26f16b Binary files a/user-guide/files/resources/project-manager/pm-create-project-java-created-window.png and b/user-guide/files/resources/project-manager/pm-create-project-java-created-window.png differ diff --git a/user-guide/files/resources/project-manager/pm-create-project-java-gradle-create.png b/user-guide/files/resources/project-manager/pm-create-project-java-gradle-create.png new file mode 100755 index 0000000..d1a67f2 Binary files /dev/null and b/user-guide/files/resources/project-manager/pm-create-project-java-gradle-create.png differ diff --git a/user-guide/files/resources/project-manager/pm-create-project-java-gradle-install.png b/user-guide/files/resources/project-manager/pm-create-project-java-gradle-install.png new file mode 100755 index 0000000..1d01063 Binary files /dev/null and b/user-guide/files/resources/project-manager/pm-create-project-java-gradle-install.png differ diff --git a/user-guide/files/resources/project-manager/pm-create-project-java-maven-create.png b/user-guide/files/resources/project-manager/pm-create-project-java-maven-create.png new file mode 100755 index 0000000..bfff3f0 Binary files /dev/null and b/user-guide/files/resources/project-manager/pm-create-project-java-maven-create.png differ diff --git a/user-guide/files/resources/project-manager/pm-create-project-java-maven-install.png b/user-guide/files/resources/project-manager/pm-create-project-java-maven-install.png new file mode 100755 index 0000000..a3941d1 Binary files /dev/null and b/user-guide/files/resources/project-manager/pm-create-project-java-maven-install.png differ diff --git a/user-guide/files/resources/project-manager/pm-create-project-java-spring-create.png b/user-guide/files/resources/project-manager/pm-create-project-java-spring-create.png new file mode 100755 index 0000000..ceb3ec5 Binary files /dev/null and b/user-guide/files/resources/project-manager/pm-create-project-java-spring-create.png differ diff --git a/user-guide/files/resources/project-manager/pm-create-project-java-spring-install.png b/user-guide/files/resources/project-manager/pm-create-project-java-spring-install.png new file mode 100755 index 0000000..1e9e170 Binary files /dev/null and b/user-guide/files/resources/project-manager/pm-create-project-java-spring-install.png differ diff --git a/user-guide/files/resources/project-manager/pm-create-project-java.png b/user-guide/files/resources/project-manager/pm-create-project-java.png new file mode 100755 index 0000000..29b37b0 Binary files /dev/null and b/user-guide/files/resources/project-manager/pm-create-project-java.png differ diff --git a/user-guide/files/resources/project-manager/pm-create-project.png b/user-guide/files/resources/project-manager/pm-create-project.png old mode 100644 new mode 100755 index 4e35107..95d4307 Binary files a/user-guide/files/resources/project-manager/pm-create-project.png and b/user-guide/files/resources/project-manager/pm-create-project.png differ diff --git a/user-guide/files/resources/project-manager/pm-debug-createlaunch.png b/user-guide/files/resources/project-manager/pm-debug-createlaunch.png old mode 100644 new mode 100755 diff --git a/user-guide/files/resources/project-manager/pm-debug-empty.png b/user-guide/files/resources/project-manager/pm-debug-empty.png old mode 100644 new mode 100755 diff --git a/user-guide/files/resources/project-manager/pm-debug-launchcreated.png b/user-guide/files/resources/project-manager/pm-debug-launchcreated.png old mode 100644 new mode 100755 diff --git a/user-guide/files/resources/project-manager/pm-debug-running.png b/user-guide/files/resources/project-manager/pm-debug-running.png old mode 100644 new mode 100755 diff --git a/user-guide/files/resources/project-manager/pm-install-1.png b/user-guide/files/resources/project-manager/pm-install-1.png old mode 100644 new mode 100755 diff --git a/user-guide/files/resources/project-manager/pm-install-2.png b/user-guide/files/resources/project-manager/pm-install-2.png old mode 100644 new mode 100755 diff --git a/user-guide/files/resources/project-manager/pm-installed-1.png b/user-guide/files/resources/project-manager/pm-installed-1.png old mode 100644 new mode 100755 diff --git a/user-guide/files/resources/project-manager/pm-installed-2.png b/user-guide/files/resources/project-manager/pm-installed-2.png old mode 100644 new mode 100755 diff --git a/user-guide/files/resources/project-manager/pm-link.png b/user-guide/files/resources/project-manager/pm-link.png old mode 100644 new mode 100755 diff --git a/user-guide/files/resources/project-manager/pm-operation-add.png b/user-guide/files/resources/project-manager/pm-operation-add.png new file mode 100755 index 0000000..749ca50 Binary files /dev/null and b/user-guide/files/resources/project-manager/pm-operation-add.png differ diff --git a/user-guide/files/resources/project-manager/pm-operation.png b/user-guide/files/resources/project-manager/pm-operation.png index 26d3e9e..4ca2cde 100644 Binary files a/user-guide/files/resources/project-manager/pm-operation.png and b/user-guide/files/resources/project-manager/pm-operation.png differ diff --git a/user-guide/files/resources/project-manager/pm-project-c-settings.png b/user-guide/files/resources/project-manager/pm-project-c-settings.png old mode 100644 new mode 100755 diff --git a/user-guide/files/resources/project-manager/pm-project-java-settings-classpath.png b/user-guide/files/resources/project-manager/pm-project-java-settings-classpath.png old mode 100644 new mode 100755 diff --git a/user-guide/files/resources/project-manager/pm-project-java-settings.png b/user-guide/files/resources/project-manager/pm-project-java-settings.png old mode 100644 new mode 100755 diff --git a/user-guide/files/resources/project-manager/pm-project-other-settings.png b/user-guide/files/resources/project-manager/pm-project-other-settings.png old mode 100644 new mode 100755 index 03e9126..b225703 Binary files a/user-guide/files/resources/project-manager/pm-project-other-settings.png and b/user-guide/files/resources/project-manager/pm-project-other-settings.png differ diff --git a/user-guide/files/resources/project-manager/pm-run-terminal.png b/user-guide/files/resources/project-manager/pm-run-terminal.png old mode 100644 new mode 100755 diff --git a/user-guide/files/resources/project-manager/pm-run.png b/user-guide/files/resources/project-manager/pm-run.png old mode 100644 new mode 100755 index 592ca0b..b3f015c Binary files a/user-guide/files/resources/project-manager/pm-run.png and b/user-guide/files/resources/project-manager/pm-run.png differ diff --git a/user-guide/files/开发环境快速部署.md b/user-guide/files/开发环境快速部署.md new file mode 100644 index 0000000..c940a1b --- /dev/null +++ b/user-guide/files/开发环境快速部署.md @@ -0,0 +1,46 @@ +# 简介 +- Kylin-IDE主要基于VSCode技术路线,VSCode技术路线的优点是通过插件可以方便地扩展功能,插件生态丰富 +- 在国产操作系统环境下,VSCode技术路线有以下问题 + * 插件市场插件过多,如何选择,哪些插件质量有保障?哪些插件在国产操作系统上能正常运行? + * VSCode体系中有些插件或功能未开源,过分依赖这些功能会在未来带来风险 + * 国产操作系统架构众多,系统版本众多,各版本上的开发环境所需的依赖软件名称或版本有可能不同,支持的插件可能不同,如何对众多系统版本进行支持 + +- 开发环境快速部署功能,能够缓解上述问题 + * 聚合,但不过分聚合,避免每个系统版本出一个软件包,修改一个功能,所有版本都需要重做 + * 以选项形式把经过改造、测试的基础插件(包括自研的、改造的和开源的)提供给用户,使用户能够完成基本开发功能。其他额外功能可以通过插件市场进行扩展 + * 便于扩展,未来,更多的解决方案可以同样以选项形式提供快速安装部署 + * 在线安装子功能 + - 在哪个系统版本上安装哪些软件包、插件,通过配置文件定义,Kylin-IDE通过读取配置文件、分析当前系统版本,提供安装选项 + - 配置文件放在线上,通过修改配置文件可以便捷地修改安装选项内容、定义新的系统版本上安装哪些软件包、插件 + - 配置文件经过签名,防止被篡改 + - 系统软件通过操作系统软件源下载,避免 + * 针对离线环境 + - 仅下载但不安装子功能(开发中) + * 在有网环境下,选择安装选项后,仅下载系统软件包、插件、配置文件,形成安装包,但不安装 + * 形成的安装包用于在离线环境中部署安装 + * 这要求仅下载不安装的环境和离线环境相同 + - 离线(本地)安装(开发中) + * 使用仅下载不安装步骤中形成的安装包,在离线环境下安装 + +- 入口 + * 安装后第一次使用时 + * 帮助主菜单,选择“打开开发环境快速部署” + +# 支持情况 +- 桌面版:支持 +- 远程开发WebIDE版和远程开发插件版:暂不支持,开发中 + +# 在线安装子功能 +- 主要流程概述 + * 获取最新配置文件:从线上获取最新配置文件,比对本地配置文件,如有更新,提示更新。配置文件中存放了安装选项和需要安装的软件、插件列表 + * 判断本机CPU架构和系统版本:系统版本主要判断依据是/etc/.kyinfo文件 + * 显示安装选项和安装列表:根据本机系统版本、配置文件,获取适合当前系统的安装选项 + * 执行安装过程:根据选择执行安装,安装软件需权限,故需要输入用户sudo密码。界面上会显示提示和进度 + * 显示安装结果:安装完成或失败后,显示安装结果。用户可以查看关键信息和日志文件 +- 安装日志文件位置 + * 日志文件路径会显示在安装界面中,类似:`/home/kylin/.config/Kylin-IDE/installconfig/log` + * 出现问题时,可以借助日志文件排查 +- 配置文件路径 + * 配置文件所在路径,类似:`/home/mrc/.config/Kylin-IDE/installconfig` + * `selectFile.json`文件中记录了当前使用的配置文件路径 + * 在配置文件中可以看到安装选项和安装列表,如希望手动安装,可以参考配置文件内容 \ No newline at end of file diff --git a/user-guide/files/远程开发WebIDE版.md b/user-guide/files/远程开发WebIDE版.md index 037a33a..96de9cb 100644 --- a/user-guide/files/远程开发WebIDE版.md +++ b/user-guide/files/远程开发WebIDE版.md @@ -9,9 +9,10 @@ - [提示信息管理](#6提示信息管理) - [插件安装、多语言开发、调试功能使用](#7插件安装多语言开发调试功能使用) - [卸载](#8卸载) + - [开启X11转发](#9开启x11转发) ## 功能概述 -- 远程开发WebIDE版,本文简称WebIDE,与一般意义的Web IDE概念不同,并不在云端提供一套统一的Web服务,而是结合了浏览器访问和SSH认证,服务端随用部署的一套软件。用法和Remote SSH插件类似,但不需要安装桌面版IDE软件。为用户提供跨机器、跨平台远程编辑、远程编译、远程运行、远程调试等功能。 +- 远程开发WebIDE版,本文简称WebIDE,与一般意义的Web IDE概念不同,并不在云端提供一套统一的Web服务,而是结合了浏览器访问和SSH认证,服务端随用部署的一套软件。用法和Remote SSH插件类似,但不需要安装桌面版IDE软件。为用户提供跨机器、跨平台远程编辑、远程编译、远程运行、远程调试等功能 - 用法举例 * 跨机器、跨平台:在X86、银河麒麟桌面操作系统上安装客户端(kylin-ide-web-client),远程开发飞腾或LoongArch机器上的应用 * 跨系统:在Windows上安装客户端,远程开发银河麒麟操作系统上的软件(Windows客户端正在开发中) @@ -148,4 +149,42 @@ - 删除远程机用户目录下~/.kylin-ide-server 目录 - 客户端卸载 - - 使用dpkg命令或者rpm命令进行卸载,同时删除用户目录下~/.kylin-ide-remote目录和~/.config/kylin-remote-ide目录 \ No newline at end of file + - 使用dpkg命令或者rpm命令进行卸载,同时删除用户目录下~/.kylin-ide-remote目录和~/.config/kylin-remote-ide目录 + + +### 9、开启X11转发 +远程开发WebIDE版支持在Linux平台开启X11转发,进而支持GUI程序相关开发。X11转发功能开启需要服务端与客户端同时配置X11转发功能,如下: +* 远程机sshd服务开启X11转发 +```shell +#修改 X11Forwarding 配置项为 yes +sudo vi /etc/ssh/sshd_config +#重启sshd服务 +sudo systemctl restart ssh/sshd +``` +* 客户端开启ssh转发 + * 方法一:在客户端连接配置页中打开X11转发开关 + + ![9-1](resources/kylin-remote-dev/openx11.png "x11开关") + + - 在打开x11开关时,会弹窗提示是否清理当前已存在的隧道,点击“清理”后会将已创建的隧道清理掉,用户需要重新打开连接才能生效 + + ![9-2](resources/kylin-remote-dev/x11prompt.png "x11提示") + + - 在添加连接页面打开x11开关时,因为新增连接并没有创建隧道,并不会提示清理隧道(无法重复创建相同连接) + + - 当前用户的本地127.0.0.1连接无需设置x11功能 + + + * 方法二:修改ssh配置文件 + + ```shell + #客户端ssh配置文件位于~/.ssh/config 如下: + Host 192.168.1.101 + HostName 192.168.1.101 + User test + ForwardX11 yes + ForwardX11Trusted yes + + #添加ForwardX11 yes及ForwardX11Trusted yes + #若无对应IP Host项直接添加对应Host即可,其他ssh相关配置也可在此配置文件直接添加。 + ``` \ No newline at end of file diff --git a/user-guide/files/问题反馈.md b/user-guide/files/问题反馈.md index 97af967..9e7b285 100644 --- a/user-guide/files/问题反馈.md +++ b/user-guide/files/问题反馈.md @@ -5,7 +5,7 @@ - openKylin Framework SIG组月度例会 * 欢迎参加月度例会,反馈问题,讨论Kylin-Code及其插件规划和发展思路、讨论IDE发展方向 * 例会时间:每个月的第2个周二下午14:00,如遇到节假日,顺延到下一个周二 - * 例会会议号通常会在openKylin官网公布([点此链接,在主页找到“社区日程”,点击日历的对应日期查看](https://www.openkylin.top/index-cn.html)) + * 例会会议号通常会在[openKylin extensions-repo readme文件中更新](https://gitee.com/openkylin/extensions-repo) - 如果无gitee账号,可以将问题发邮件反馈,邮箱列表如下 * muruichao@kylinos.cn * quanzhuo@kylinos.cn \ No newline at end of file diff --git a/user-guide/files/项目管理.md b/user-guide/files/项目管理.md index 1e27bcf..2fc4336 100644 --- a/user-guide/files/项目管理.md +++ b/user-guide/files/项目管理.md @@ -1,398 +1,196 @@ -# 项目管理插件安装使用说明 - +# 项目管理 ## 1、插件安装 - -- 通过插件筛选器,找到 Kylin Project Manager 插件 - -- 点击安装 - -![图1-2](resources/project-manager/pm-install-1.png "项目管理安装") - -![图1-3](resources/project-manager/pm-install-2.png "项目管理安装") - -- 完成安装。 -- 如果是版本升级则需要重新加载主程序插件才生效,请根据提示操作完成安装。 - -![图1-4](resources/project-manager/pm-installed-1.png "项目管理已安装") - -![图1-5](resources/project-manager/pm-installed-2.png "项目管理已安装") +- 点击最左侧插件图标,通过Kylin-IDE推荐插件或直接检索找到 Kylin Project Manager(kylinideteam.project-manager)插件并安装 +- 下文适用于Kylin Project Manager插件版本大于0.2.1 ## 2、项目管理插件操作区 -- 在资源管理器展开“项目操作区” -- 提供项目创建、配置、编译、调试、运行、打包等相关功能入口 +- 在资源管理器视图展开“项目操作区”,包括: + +> 基本操作、任务列表、调试配置列表、执行Node.js配置脚本等 + ![图2-1](resources/project-manager/pm-operation.png "项目管理操作区") +- 基本操作: + +> 提供项目创建、配置、构建、调试、运行等相关功能入口; + +- 任务列表: + +> 通过解析当前工作区第一个项目的tasks.json,显示各个任务按钮,悬停显示任务信息,点击可以执行具体任务。 + +- 调试配置列表: + +> 通过解析当前工作区第一个项目的launch.json,显示各个调试按钮,悬停显示调试信息,点击可以进入调试页面执行该调试。 + +- 执行Node.js配置脚本: + +> 通过解析当前工作区第一个项目的package.json,显示脚本按钮,悬停显示脚本信息,点击调起终端通过npm执行。 + +- 刷新按钮: + +> 如果项目内容发生变化,可点击右上角刷新图标刷新操作区; + +- 自定义按钮 + +> 点击右上角添加自定义按钮,弹出下拉选择。 +> - 包括: +> - 添加自定义IDE命令调用按钮 +> ``` +> 可以添加一个自定义按钮: +> ·输入按钮标题XXX; +> ·输入Kylin-IDE的commmand; +> ·刷新操作区后自定义按钮区显示XXX按钮; +> ·点击该按钮可以执行该command; +> ``` +> - 添加自定义终端命令执行按钮 +> ``` +> 可以添加一个自定义按钮: +> ·输入按钮标题; +> ·输入Linux终端命令; +> ·刷新操作区后自定义按钮区显示XXX按钮; +> ·点击该按钮可以打开一个Kylin-ID内置终端并执行该命令; +> ``` + ## 3、创建新的项目 -- 点击“创建新的项目”,也可以通过 Ctrl+Shift+P 调起命令窗口,输入“创建项目”或“project.createProject”,选择 PROJECT:创建项目,调起页面。 +- 点击“创建新的项目”;或从文件主菜单-->新建项目;也可以通过 Ctrl+Shift+P 调起命令窗口,输入“创建项目”或“project.createProject”,选择 PROJECT:创建项目,调起页面。 - 在右侧编辑区弹出“创建项目”页面。 -- 页面内包括: - - 语言选择树(目前包含 c/c++ 和 Java) - - 可以通过点击切换选择不同的语言类型来创建。 - - 创建项目录入区 - - 与语言选择树关联,切换不同的语言,会显示不同的录入内容页面。 - - 包括 关闭、上一步/下一步、创建 等功能按钮 ![图3-0](resources/project-manager/pm-create-project-command.png "命令调起创建项目页面") -![图3-1](resources/project-manager/pm-create-project.png "创建项目视图") +- 项目创建页面内包括: -### 3.1、创建C/C++项目 + - 全部语言类型:可以选择不同的语言和项目类型的项目列表; + - 请选择项目标签:可以选择不同项目标签的项目列表,支持多选; + - 快速部署开发环境,可以点击跳转到Kylin-IDE开发环境部署模块; + - 项目列表,可以点击图标,进入对应类型项目创建功能; -- 在资源管理器展开“项目操作区” -- 点击“创建新的项目”,也可以通过 Ctrl+Shift+P 调起命令窗口,输入“创建项目”或“project.createProject”,选择 PROJECT:创建项目,调起页面。 -- 在右侧编辑区弹出“创建项目”页面。 -- 选择C/C++ C项目 +### 3.1、创建C/C++项目示例:创建C语言应用项目 + +在项目创建页面选择第一行:C语言应用项目 #### 3.1.1、第一页 -- 点击“项目类型” -- 可以切换选择“默认项目”、“静态库项目”、“动态库项目”。 - -![图3-2](resources/project-manager/pm-create-project-c-1st-type.png "选择C/C++项目类型") - +- “项目类型”目前只支持simple项目 - 点击“项目构建方式” -- 可以切换选择“makefile”、“cmake”。 - -![图3-3](resources/project-manager/pm-create-project-c-1st-buildtools.png "选择C/C++项目构建方式") - +- 可以切换选择“makefile”、“cmake” - 点击下一页 -#### 3.1.2、第二页 +#### 3.1.2、第二页 项目基本信息 - 输入合法项目名称(必填) - 选择项目目录(必填) - 输入更多信息 - 点击下一页 -![图3-4](resources/project-manager/pm-create-project-c-2nd-page.png "创建C/C++项目第二页") - -#### 3.1.3、第三页 +#### 3.1.3、第三页 编译选项 - 输入合法编译输出文件名(必填) -- 输入更多编译调试运行参数 +- 选择C语言标准(C++项目选择C++标准) +- 输入更多编译参数 - 点击创建 -![图3-5](resources/project-manager/pm-create-project-c-3rd-page.png "创建C/C++项目第三页") - #### 3.1.4、创建成功 - 弹出 C/C++环境检查通过提示 - 弹出创建项目成功提示 -- 弹出新项目页面(如当前页面未打开项目,则会在本视窗打开) -- 点击“是,我信任此作者”,即可进行后续项目编写使用。 +- 弹出新项目页面(如当前页面未打开项目,则会在本视窗打开,如果已打开项目,会弹出询问打开方式) +- 首次打开新项目会弹出是否信任此文件夹中文件的作者。点击“是,我信任此作者”,即可进行后续项目编写使用。 -![图3-6](resources/project-manager/pm-create-project-c-created-notice.png "创建C/C++项目成功提示") +![图3-5](resources/project-manager/pm-create-project-c-created-ask.png "创建C语言应用项目 成功打开方式") -![图3-7](resources/project-manager/pm-create-project-c-created-window.png "创建C/C++项目成功打开项目") +![图3-6](resources/project-manager/pm-create-project-c-created-notice.png "创建C语言应用项目 成功提示") -### 3.2、创建简单Java项目 +#### 3.1.5 C/C++其他项目创建 -- 在资源管理器展开“项目操作区” -- 点击“创建新的项目”,也可以通过 Ctrl+Shift+P 调起命令窗口,输入“创建项目”或“project. -createProject”,选择 PROJECT:创建项目,调起页面。 -- 在右侧编辑区弹出“创建项目”页面。 -- 选择Java Java项目 +与C语言应用项目创建流程相似,此处略 + +### 3.2、创建Java项目 + +- 在项目创建页面选择:Java项目,创建一个简单的Java语言项目 #### 3.2.1、输入信息 - 输入合法项目名称(必填) - 选择项目目录(必填) -- 输入 JDK 目录(必填) +- 选择已安装jdk或输入JDK目录(必填) - 输入“输出目录” - 点击创建 -![图3-8](resources/project-manager/pm-create-project-java-1st-page.png "创建Java项目") - #### 3.2.2、创建成功 -- 弹出创建项目成功提示(注:0.1.1 版本缺失,下一版本支持) -- 弹出新项目页面(如当前页面未打开项目,则会在本视窗打开) -- 点击“是,我信任此作者”,即可进行后续项目编写使用。 - - - - ![图3-9](resources/project-manager/pm-create-project-java-created-window.png "创建简单Java项目成功打开项目") +- 弹出创建项目成功提示 +- 弹出新项目页面(如当前页面未打开项目,则会在本视窗打开,如果已打开项目,会弹出询问打开方式) +- 首次打开新项目会弹出是否信任此文件夹中文件的作者。点击“是,我信任此作者”,即可进行后续项目编写使用。 ### 3.3、创建高级Java项目 -- 暂不支持 +#### 3.3.1 创建基于Maven的Java项目 + + 基于maven插件,请安装Jave Maven插件。 + 同时需要安装配置maven、jdk环境,注意maven与jdk版本的匹配 + +- 未安装maven插件,弹出提示: + +![图3-10](resources/project-manager/pm-create-project-java-maven-install.png "安装maven插件提示") + +- 已安装maven插件,直接调起插件创建功能: + + 请根据流程完成创建 + +#### 3.3.2 创建基于Gradle的Java项目 + + 基于gradle插件,请安装Jave Gradle插件使用。 + 同时需要安装配置gradle、jdk环境 + +- 未安装gradle插件,弹出提示: + +![图3-10](resources/project-manager/pm-create-project-java-gradle-install.png "安装gradle插件提示") + +- 已安装gradle插件,直接调起插件创建功能: + + 请根据插件流程完成创建,注意需要gradle/openjdk等相应环境 + +#### 3.3.3 创建SpringBoot项目 + +基于开源插件功能,需安装Spring Initializr Java Support(vscjava.vscode-spring-initializr)。需要JDK17以上,maven 3.8.1以上 + +- 未安装spring项目创建插件,弹出提示: + +![图3-10](resources/project-manager/pm-create-project-java-spring-install.png "安装spring插件提示") + +- 已安装spring项目创建插件,直接调起插件创建功能。 + + 请根据插件流程完成创建,注意需要maven/gradle/openjdk等相应环境 + +![图3-11](resources/project-manager/pm-create-project-java-spring-create.png "构建SpringBoot项目") + ## 4、配置当前项目 +- 需要了解基本的task.json、launch.json配置方法,见[如何配置工程的构建、调试、运行章节](./如何配置工程的构建-调试-运行.md) +- 项目操作区的配置按钮可以看作是操作task.json和launch.json的快捷方式。也可以通过菜单方式等创建,或直接创建文件 -### 4.1、配置C/C++项目 +## 5、构建 -- 打开刚才创建的 C/C++项目 testC -- 点击“配置当前项目” -- 在右侧编辑区弹出“配置项目”页面。 -- 可修改项目编译输出文件内容。 -- 可选择修改编译、调试、运行参数。 -- 第二页点击保存,显示“保存成功”。完成项目编译、调试、运行参数的配置。 - -![图4-1](resources/project-manager/pm-project-c-settings.png "C/C++项目配置") - -#### 4.1.1、配置详细介绍 - -- 项目识别: - 包含vsproject.ide.json文件,内容为json数据 - - 有"language"属性 - - 属性值为"c"、"c++" - - - 有"buildTools"属性 - - 属性值为"makefile"、"cmake" - -- tasks.json配置文件 - - 文件位置:.vscode/ - - 文件作用:用来告诉 IDE 如何构建(编译)程序 - - testC项目的tasks.json实例 - - 说明:该build脚本,用来实现对testC项目进行编译,本实例是通过makefile实现编译。 - - ``` json - { - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "group": { - "kind": "build", - "isDefault": true - }, - "linux": { - "command": "bash", - "args": [ - "-c", - "make" - ] - } - }, - ... - ] - } - - ``` - - - Makefile 与配置关系 - 本testC项目中,Makefile文件内预制了编译和运行参数。 - 例如: - - 用户在配置页面修改“编译输出文件”内容,并保存时。 - 实际Makefile文件内的 KConfig_outputFileName 值会跟随改变。 - 这样当IDE执行项目编译,调用tasks.json的build项,执行make build时,实际生成的编译输出文件会跟随Makefile文件内的KConfig_outputFileName 定义而改变。 - - ``` makefile - # KylinCode 编译配置项 - KConfig_outputFileName = main - KConfig_compileDebugLevel = -g - KConfig_WarningLevel = - KConfig_OptimizeLevel = - KConfig_ExtraPara = - KConfig_IncludesPath = - KConfig_LibraryPath = - KConfig_Libraries = - - ``` - - - 其他配置项修改原理与“编译输出文件”相同。 - - cmake类型与makefile原理相同。 - -### 4.2、配置Java项目 - -- 打开刚才创建的 Java 项目 testJava -- 点击“配置当前项目” -- 在右侧编辑区弹出“配置项目”页面。 - -![图4-2](resources/project-manager/pm-project-java-settings.png "Java项目配置") - -- 打开调试配置文件 launch.json,如下代码。用来支持java项目的调试功能。 - - ``` json - { - "version": "0.2.0", - "configurations": [ - { - "type": "java", - "name": "Launch Current File", - "request": "launch", - "mainClass": "${file}", - "args": "" - }, - { - "type": "java", - "name": "Launch App", - "request": "launch", - "mainClass": "testgradle.App", - "projectName": "app" - } - ] - } - ``` - -- 打开任务文件 tasks.json,如下文,用来支持项目的编译和调试功能; - - ``` json - { - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "type": "shell", - "options": { - "cwd": "${workspaceFolder}" - }, - "command": "javac", - "args": [ - "src/main.java", - "-sourcepath", - "src", - "-classpath", - "${config:java.project.referencedLibraries}", - "-d", - "${config:java.project.outputPath}" - ] - }, - { - "label": "run", - "type": "shell", - "options": { - "cwd": "${workspaceFolder}" - }, - "command": "java", - "args": [ - "-cp", - "${config:java.project.outputPath}", - "main" - ], - "dependsOn": [ - "javac" - ] - }, - { - "label": "clean", - "type": "shell", - "options": { - "cwd": "${workspaceFolder}" - }, - "command": "rm $(find . -name \"*.class\")" - } - ] - } - ``` - -- 打开 Java 类路径配置 - 可以修改源码路径、输出路径、添加依赖库等;修改结果会保存在settings.json内 -![图4-2](resources/project-manager/pm-project-java-settings-classpath.png "Classpath Configuration") - -- 打开打开工作区设置页。 -- 打开工作区设置 json 文件。 - -### 4.3、配置Other项目 - -- 打开其他类型的测试项目 -- 点击“配置当前项目” -- 在右侧编辑区弹出“配置项目”页面。 - - ![图4-2](resources/project-manager/pm-project-other-settings.png "Java项目配置") -包括以下: - - 打开调试配置文件launch.json,点击可以打开文件编辑调试配置。(如当前项目没有,会弹出创建选择) - 创建方法如下: - - - 点击菜单中的运行->添加配置 - - ![图4](./resources/java/add-launch.png) - - - launch.json文件创建成功 - - 打开任务文件 tasks.json,点击可以打开文件编辑编译运行任务。(如果当前项目没有,会弹出创建选择) - - 创建方法如下: - - - 点击菜单中的终端->配置任务->使用模板创建tasks.json文件->others - - tasks.json文件创建成功 - - 创建的tasks.json默认内容如下: - - ```json - { - "version": "2.0.0", - "tasks": [ - { - "label": "echo", - "type": "shell", - "command": "echo Hello" - } - ] - } - ``` - - - 根据项目情况修改tasks.json文件,以testJava为例修改后内容如下: - - ```json - { - "label": "build", - "type": "shell", - "options": { - "cwd": "${workspaceFolder}" - }, - "command": "javac", - "args": [ - "src/main.java", - "-sourcepath", - "src", - "-classpath", - "${config:java.project.referencedLibraries}", - "-d", - "${config:java.project.outputPath}" - ] - }, - { - "label": "run", - "type": "shell", - "options": { - "cwd": "${workspaceFolder}" - }, - "command": "java", - "args": [ - "-cp", - "${config:java.project.outputPath}", - "main" - ], - "dependsOn": [ - "javac" - ] - } - ``` - - 修改后,即可支持通过任务进行编译、运行等操作。 - -## 5、编译 - - 编译功能入口,为项目开发提供快捷操作。 - -- 依赖.vscode/tasks.json 文件定义。 -- 点击会打开tasks.json的 build项目执行,通过终端执行编译。 - - ![编译](resources/project-manager/pm-build.png "项目编译") +构建按钮,为项目开发提供快捷操作 +- 依赖tasks.json文件中的定义 +- 点击构建按钮会执行tasks.json中label为build的task或类型为build的task ## 6、运行 - 运行功能入口,为项目开发提供快捷操作。 + 运行功能入口,为项目开发提供快捷操作 -- 依赖.vscode/tasks.json 文件定义。 -- 点击会打开tasks.json的所有项目,选择run项目,选择继续而不扫描任务输出,通过终端执行程序运行。 - - ![运行](resources/project-manager/pm-run.png "项目运行") - ![运行终端](resources/project-manager/pm-run-terminal.png "项目运行终端") +- 依赖tasks.json文件定义 +- 点击会列出tasks.json中定义的task列表,选择一个task,选择继续而不扫描任务输出,通过终端执行程序运行 -## 7、调试 +## 7、打开运行和调试页面 - 调试功能入口,点击进入“调试”功能 + 调试功能入口,点击进入运行和调试页面 -- 依赖.vscode/launch.json文件 -- 点击“调试”按钮,进入调试页面。 +- 依赖launch.json文件 +- 点击“打开运行和调试页面”按钮,进入运行和调试页面。 ![没有项目调试配置文件](resources/project-manager/pm-debug-empty.png "没有项目调试配置文件") @@ -401,11 +199,6 @@ createProject”,选择 PROJECT:创建项目,调起页面。 ![创建项目调试配置文件](resources/project-manager/pm-debug-createlaunch.png "创建项目调试配置文件") -- 弹出选择调试器,请根据项目类型选择相应的调试器。 +- 弹出调试器类型列表,请根据项目编程语言和类型选择相应的调试器类型 - 创建完成,会进入运行调试页面。可以按项目需要修改launch.json,可以点击左侧选择需要的调试配置项 - -![进入运行调试页面](resources/project-manager/pm-debug-launchcreated.png "进入运行调试页面") - -- 点击绿色三角开始调试。 - -![开始调试](resources/project-manager/pm-debug-running.png "开始调试") +- 点击绿色三角开始调试 \ No newline at end of file