经过一段时间的学习和使用本文总结了一些使用VsCode开发的使用方法,本文偏向于应用但会对少量的我知晓的原理进行一部分解释。

参考教程链接:https://cn.community.intersystems.com/node/488611

VSCode下载:https://code.visualstudio.com/

 

  • 使用VSCode开发的优劣:
  • 1 优势:

  • 跨平台(Windows|MAC|Linux)开发调试远程服务端代码,而且可以快速导出COS代码(M语言也可以)。
  • SQL辅助查询数据
  • 快捷的代码调试方式,一种是直接在VSCode中调试,另一种是快速复制类名和方法名在Terminal中调试。
  • 代码智能联想补全,类似其它语言,输入开头的前几个字符可以联想后面的。
  • 快速跳转到方法定义(ctrl+鼠标左键 | F12)
  • 主题图标多样化,可以使用默认的黑色,当然也可以使用和studio一样的样式,链接:https://cn.community.intersystems.com/node/516996
  • 2 劣势:

  • 无法导入导出XML文件
  • 缺少一些Studio的常用功能:
    1. SOAP向导
    2. Java网关
    3. DT转换拖拽编写
    4. BP流程拖拽编写
  • 安装步骤
  • 1官网安装Visual Studio Code编辑器

     https://code.visualstudio.com/Download

            安装直接下一步 - 下一步

     

    2 汉化

    如果安装为英文要切换为中文则可以通过Command Palette 中运行Configure Display Language,install another language, 选择中文,再根据提示安装相应的语言插件。

     

    3 扩展安装

    打开软件,侧边栏点击扩展按钮->搜索  "InterSystems" -> 安装扩展,如图所示:

     

     

    前三个是IRIS官方推荐按安装的插件,其中InterSystems ObjectScript Extension Pack (集成好的InterSystems插件包),在此还推荐安装SQL Tools InterSystems IRIS(连接数据库插件,使用效果类似于SQLdbx)

        4 配置

        VSCode支持图形化的配置,但实测并不好用,而且容易保存失败,在此推荐使用settings.json

       打开:设置 -> 扩展 -> InterSystems Server Manager -> settings.json

       

    {
        <span class="hljs-string">"intersystems.servers"</span>: {
            <span class="hljs-string">"loc"</span>: {
                <span class="hljs-string">"webServer"</span>: {
                    <span class="hljs-string">"scheme"</span>: <span class="hljs-string">"http"</span>,
                    <span class="hljs-string">"host"</span>: <span class="hljs-string">"127.0.0.1"</span>,
                    <span class="hljs-string">"port"</span>: <span class="hljs-number">52773</span>
                },
                <span class="hljs-string">"askForPassword"</span>: false,
                <span class="hljs-string">"username"</span>: <span class="hljs-string">"Superuser"</span>,
                <span class="hljs-string">"password"</span>:<span class="hljs-string">"SYS"</span>,
                <span class="hljs-string">"description"</span>:<span class="hljs-string">"228"</span>
            }, 
        },
        <span class="hljs-string">"terminal.integrated.detectLocale"</span>: <span class="hljs-string">"on"</span>,
        <span class="hljs-string">"intersystems.language-server.diagnostics.routines"</span>: true,
        <span class="hljs-string">"editor.renderControlCharacters"</span>: false,
        <span class="hljs-string">"editor.unicodeHighlight.ambiguousCharacters"</span>: false,
        <span class="hljs-string">"git.autorefresh"</span>: false,
        <span class="hljs-string">"git.autoRepositoryDetection"</span>: false,
        <span class="hljs-string">"git.confirmEmptyCommits"</span>: false,
        <span class="hljs-string">"git.confirmForcePush"</span>: false,
        <span class="hljs-string">"git.confirmNoVerifyCommit"</span>: false,
        <span class="hljs-string">"git.confirmSync"</span>: false,
        <span class="hljs-string">"git.countBadge"</span>: <span class="hljs-string">"off"</span>,
        <span class="hljs-string">"diffEditor.wordWrap"</span>: <span class="hljs-string">"on"</span>,
        <span class="hljs-string">"editor.wordWrap"</span>: <span class="hljs-string">"on"</span>,
        <span class="hljs-string">"workbench.colorTheme"</span>: <span class="hljs-string">"InterSystems Default Dark"</span>,
        <span class="hljs-string">"workbench.editor.enablePreview"</span>: false,
        <span class="hljs-string">"vsicons.dontShowNewVersionMessage"</span>: true,
        <span class="hljs-string">"git.enableSmartCommit"</span>: true,
        <span class="hljs-string">"explorer.confirmDelete"</span>: false,
        <span class="hljs-string">"editor.fontSize"</span>: <span class="hljs-number">13</span>,
        <span class="hljs-string">"objectscript.conn"</span>: {
            <span class="hljs-string">"host"</span>: <span class="hljs-string">"127.0.0.1"</span>,            <span class="hljs-comment">// 连接数据库IP</span>
            <span class="hljs-string">"port"</span>: <span class="hljs-number">57772</span>,        <span class="hljs-comment">// 连接数据库端口</span>
            <span class="hljs-string">"username"</span>: <span class="hljs-string">"Superuser"</span>,        <span class="hljs-comment">// 用户名</span>
            <span class="hljs-string">"password"</span>: <span class="hljs-string">"SYS"</span>,        <span class="hljs-comment">// 密码</span>
            <span class="hljs-string">"ns"</span>: <span class="hljs-string">"BKlinik"</span>,             <span class="hljs-comment">// 命名空间</span>
            <span class="hljs-string">"active"</span>: true,       <span class="hljs-comment">// 是否开启</span>
            <span class="hljs-string">"https"</span>: true,
            <span class="hljs-string">"server"</span>: <span class="hljs-string">"bklinik"</span>    <span class="hljs-comment">// intersystems.servers中设置的数据库服务器名</span>
        },
        <span class="hljs-string">"sqltools.connections"</span>: [
    
            {
                <span class="hljs-string">"namespace"</span>: <span class="hljs-string">"BKlinik"</span>,
                <span class="hljs-string">"connectionMethod"</span>: <span class="hljs-string">"Server and Port"</span>,
                <span class="hljs-string">"showSystem"</span>: false,
                <span class="hljs-string">"previewLimit"</span>: <span class="hljs-number">50</span>,
                <span class="hljs-string">"server"</span>: <span class="hljs-string">"localhost"</span>,
                <span class="hljs-string">"port"</span>: <span class="hljs-number">52773</span>,
                <span class="hljs-string">"askForPassword"</span>: false,
                <span class="hljs-string">"driver"</span>: <span class="hljs-string">"InterSystems IRIS"</span>,
                <span class="hljs-string">"name"</span>: <span class="hljs-string">"BKlinik"</span>,
                <span class="hljs-string">"username"</span>: <span class="hljs-string">"Superuser"</span>,
                <span class="hljs-string">"password"</span>: <span class="hljs-string">"SYS"</span>
            }
        ],
        <span class="hljs-string">"intersystemsServerManager.credentialsProvider.deletePasswordOnSignout"</span>: <span class="hljs-string">"never"</span>,
    }

     

    这是我目前使用的:

        intersystems.servers :指的是IRIS的服务器的设置,内部的服务器命名不可大写,相比较官方出具的设置,我增加了【"askForPassword": false, "password":"123456",】此处的增加是方便后面打开代码的时候不需要再输入密码。

     

    5 打开代码

        打开代码有两种方式:一种是直连代码打开,另一种是客户端方式连接,第一种相当于studio直接连着代码进行编辑,第二种是把代码下载到本地磁盘的对应目录进行编辑。第一种方式好处是完全无感的查看编辑代码,但是如果不小心删掉之后无法恢复。第二种方式删掉之后可以恢复,而且也可以用GIT等代码版本控制,但是如果多人同时编辑代码,可能会存在冲突覆盖的情况。

  • 直连代码
  • Instersystems tools All Servers 【服务器名】 NameSpace 命名空间

    然后你就可以愉快的编辑代码了

    1. 客户端方式打开
    1. 首先,你得建立一个文件夹,如图:本文是在D://workspace建立的一个aaa文件

    1. 点击打开文件夹 选择对应文件

    此时会出现一个IRIS的图标,ObjectScript,如图所示:

    点击ObjectScript – Choose Server and Namespace – 选择对应的服务器

    再选择你需要的命名空间 比如我这边选择的是【HSLIB】

    选择你需要编辑的代码 - 右键 - 选择Export

    输出的框里会显示导出详情,如下图所示:

    等待导出完毕,回到代码编辑,你的代码会出现在src目录下,如图所示:

    如果你了解过ZPM的话,你现在还可以在这边添加一个module.xml,方便你把这个代码导入到其它机器上,ZPM相关的知识可以去GitHub上看看,关键就两个命令 [zpm] [load -v 【路径】] 和一个文件的编写,特别好用的是导入发布订阅和查找表,导代码的话得保证你的代码一行都没有问题,如果你的代码在使用的时候跨命名空间做了一些操作的话ZPM也会报错。

    如何配置GIT的话,可以通过命令行的方式在本地文件上配置,也可以在VSCode上处理,和其它代码的处理方式差不多。

    如果你安装了【SQL Tools InterSystems IRIS】那么上述配置中的sqltools.connections就是你需要的连接配置,你可以尝试改成你自己的库,然后进行一些简单的SQL操作。当然个人还是推荐使用DBeaver,这个更好用。

     

     

    总结

    好了,以上就是如何进行VSCode开发的我的一些小分享,如果有纠正请联系!!!