VSCode 是目前很流行的一款免费开发工具,IRIS也支持使用其进行连接和开发,相比Studio 只能在windows 环境使用,Vscode 可以跨平台使用。

我们传统的工具Studio 是连接代码服务器的形式,不能便捷的使用目前流行的有本地代码的版本控制工具(如git),但VSCode可以存在本地代码,并且能方便的使用各类存在本地代码的版本控制工具。

以下的内容会帮助大家来配置使用VSCode连接IRIS 进行开发。

VSCode 可以在微软的官网免费下载https://code.visualstudio.com/

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

接下来在扩展商店里搜索intersystems 安装如图所见的3个扩展包

VSCode目前有两种方式可以链接IRIS:

  1. 直接连接代码服务器进行编辑
  2. 使用客户端方式连接,将代码下载到本地,便于使用有本地代码的版本控制工具

注:两种连接方式的连接端口都为服务器web port

下面具体讲解两种连接方式。

  1. 直接连接代码服务器进行编辑

其总体的使用方式和studio相似,直接连接服务器进行代码编辑。在vscode中可以使用全局只读的方式来浏览代码,从而避免误操作修改了代码。

如果会经常使用这个服务器,可以考虑先建立一个工作区,将设置保存在工作区,当然直连服务器的模式下,建立服务器不是必选项。

如果我们正确的安装了之前提到的三个扩展,其中下面扩展会帮助我们连接IRIS代码服务器,并保存在VSCode的全局 settings.json配置文件中:

进入VSCode 设置中找到“扩展”下的Intersystems Server Manager ,进入设置可见安装自带的服务器连接字符串可以依据用户需要进行添加和修改

配置完成可以回到工作区界面进行连接

选择Choose Server and Namespaces, 从右边的服务器列表中选择要连接的服务器,也可以使用“+”来根据提示信息来添加新的服务器。

选择服务器之后会提示输入密码(如果没有在配置中写明登录用户,也会提示输入登录用户)验证成功后可以选择想查看的命名空间,最后按照提示选择是以编辑或者只读方式来查看代码。

在服务器直连的模式下,可以将多个服务器的多个命名空间的代码添加至当前工作区。

目前的连接方式进入之后会频繁的要求登录验证,输入密码,这里实际可以将密码存在VSCode的钥匙链中:

  • 1.打开命令面板
  • 2.输入store  使用下图中的命令则可以为选定的服务器存储密码,但是每个服务器只能保存一个密码,相应的在命令面板中输入clear 会提示清除密码的选项用来删除已存储的密码

2. 使用客户端方式连接

如果使用客户端的连接方式,则必须要在工作区内添加一个文件夹,以及保存此工作区。当添加文件夹到工作区之后侧边栏会多出图示的按钮:

  • 点击按钮选择Choose server and namespaces

  • 此时如果在vscode中已经添加过想要连接的IRIS 代码服务器,这里会直接显示已存储的服务器,设置法与之前提到的直连方式相同。
  • 连接完成后如果想添加多个命名空间到工作区,可以使用右上角的+号进行添加

接下来可以在客户端模式连接导出ObjectScript代码到本地。从而进行源代码的版本控制管理。

在objectscript explorer中选择任意的包,或者类右键选择export,则可以将其导出到目前工作区的文件夹下

  • 代码会被导出到工作区目录的src文件夹下。

  1. 客户端模式中使用 GIT

首先打开一个GIT Repo文件夹,如果本来然后按照客户端连接方式连接用来开发的服务器。在任何的包或文件上点击import and compile 可以将版本控制的代码导入开发服务器。 注意这时候只要在本地新建文件并且保存,新的修改就会被同步到开发服务器实例上。

  1. 以客户端方式连接时连接多个服务器或多个命名空间的方式:

首先将一个文件夹添加到工作区,并保存工作区,在保存之后的工作区中可以看到如下的工作区配置文件(

此处我使用的默认工作区配置文件名,实际可以自行定义),其中定义了工作区的目录结构:

此时我们在这个工作区内添加一个子目录,在工作区的列表右键单击,选择“将文件夹添加到工作区”:

添加后可以看到,在工作区配置文件中增加了新的目录,为了这个显示层级更加清楚,可以在settings 中使用files.exclude 来过滤是否显示子目录

此时子再点击侧边栏中的 object script explorer,则会让用户选择使用哪一个子目录进行连接:

要使用另一个目录连接一个服务器的命名空间时,将第一个已连接的文件夹下.vscode 拷贝到第二个文件夹:

直接对这个文件进行修改,将其配置成为想连接的服务器以及命名空间

连接配置文件同样支持如下的写法:

此时再回到object script exploer,可见到添加了的服务器。

可见这里服务器的连接和本地代码编译的目标对象只由当前文件夹下.vscode/settings.json控制。

所有的之前提到的配置文件都可以手工编辑,不必一定在vscode中进行添加文件夹和配置连接。

  1. 在VSCode中调试

以客户端方式连接时可以进行调试:

在侧边栏选择调试按钮,首次调试应在工作区创建launch.json,并选择ObjectScript Debug

  • 对于Class Method,可以直接在类中点击“Debug this Method”

  • 下边是一个Class Method 实例的实例调试界面

附加到进程调试:

  • 对于需要附加到的进程,在lauch.json中添加”program” 属性,并填入进程号,保存。
  • program 中也可以填入要debug的routine 比如“##class(Test.test).test()”, “name”可以修改成自定义的名字,之后会在debug运行按钮的下拉菜单显示。
  • 调试的配置可以添加多个,都会显示在debug下拉菜单中

  • 进入调试界面,点击xDebug 旁边的绿色启动按钮开始调试,其他同Class Method 调试方式

  1. 关于VSCode几个编辑器小技巧:

在底部栏点击当前连接的服务器会出现提示菜单,从这里可以便捷进入实例管理界面和class reference

在任意的类或者方法上点击右键可以转到定义。如果使用了#dim预定义变量,则可以在变量上使用转到变量声明,而且可以使用转到类型定义类型的定义。

  1. 尾声
  • 当前版本不支持xml 代码文件导入!VSCode community中已经有人提到过这个问题,开发者回复之后的版本很有可能会加入
  • 本项目的Github的issue地址,可以在这里提出问题:https://github.com/intersystems-community/vscode-objectscript/issues
  • 支持的产品 :Caché/Ensemble 2016.2 以及更新, 以及所有的基于IRIS 的产品版本.

精华文章置顶--使用VSCode 进行IRIS 开发相关推荐

  1. 精华文章置顶--CDC系列之一 :使用Dejournal Filter在InterSystems IRIS/Caché上通过Mirroring实现CDC功能...

    InterSystems IRIS/Caché的CDC InterSystems IRIS/Caché未提供开箱即用的变更数据捕获(CDC)工具,而且由于其多模型建模能力和底层的多维存储模型,相对于关 ...

  2. php置顶文章,php实现文章置顶功能的方法

    本文实例讲述了php实现文章置顶功能的方法.分享给大家供大家参考,具体如下: 昨天客户让做文章置顶的功能.自己以前没做过.靠着同事的指点才做了出来.本来挺简单的事情,被自己搞了好久.自己真的缺乏对程序 ...

  3. wordpress如何设置文章置顶以及区分置顶文章与普通文章

    很多博客都有自己的置顶文章,在默认情况下WP对置顶文章只是将它们的位置排在前面,除了位置差异外,跟其他文章是没有任何区别的.那我们怎样才能将它们区别开来呢?我这里有几种方法:  一.在WordPres ...

  4. 【Hexo搭建个人博客】(十三)Next主题中添加首页文章置顶功能及置顶图标

    1. 安装插件 npm uninstall hexo-generator-index --save npm install hexo-generator-index-pin-top --save 如果 ...

  5. hexo博客优化之文章置顶+置顶标签

    本文首发于wangwlj.com 博文置顶 一种方法是手动对相关文件进行修改,具体可参考这篇文章. 另一种方法就是,目前已经有修改后支持置顶的仓库,可以直接用以下命令安装. $ npm uninsta ...

  6. hexo博客文章置顶功能实现的两种方法

    写在前面 本文主要描述了如何实现hexo文章置顶功能,讲述了通过修改源码和通过更改插件两种方式实现,以及如何添加置顶显示.文章可能还有很多不足,请大家谅解,欢迎大佬提意见. 本文使用的东西 win10 ...

  7. Blog外挂之:文章置顶

    Blog外挂之:文章置顶 By 刘未鹏(pongba) C++的罗浮宫(http://blog.csdn.net/pongba) 许多朋友想要文章置顶的功能.比如博客园的这个样子: 图片截自爆牙齿的b ...

  8. 帖子置顶原理 php,自定义织梦cms文章置顶及其功能原理分析

    本人在织梦dedecms本发分类信息发布系统那个功能的时候,因为,用到置顶功能,这是很多分类信息系统最很重要的特色,所以,对这个作了一个织梦dedecms系统的研究,以前用织梦dedecms系统建站, ...

  9. 前端取消置顶功能_短说开发日报:首页推荐频道刷新后首页置顶的数据没有加载出来的问题已修复(9.22周二)...

    短说社区论坛系统是想天软件推出的一款集社区论坛.电商商城.知识付费三大版块为一体的整合运营系统 同步支持H5.公众号.安卓.IOS.PC.多渠道小程序(微信.头条.百度.支付宝.QQ) SAAS版本. ...

最新文章

  1. Mixing Milk(USACO)
  2. Facebook收购GrokStyle:布局AI零售
  3. 高频变压器的磁饱和及变压器最大电流测量
  4. c语言作业集答案,C语言习题集及答案
  5. BEx Query Designer中的变量及其增强
  6. 让读博轻松、愉快的10种方法
  7. 利用ASP.NET MVC 的默认类型绑定器---将Jquery datatables中的数据强类型绑定到实体类中
  8. python迭代器好处_python迭代器
  9. (28)状态机概述(第6天)
  10. js 获取浏览器高度和宽度值
  11. graphicsmagick常用命令
  12. 用PHP ping 一个 IP
  13. python dynamic array
  14. python一键批量下载个人简历网的简历模板
  15. 基于仿真软件multisim14的多路抢答器电路设计
  16. python模拟ios,python模拟点击在ios中实现的实例讲解
  17. Accer 4752G添加固态硬盘 双系统
  18. ORA-12505, TNS:listener does not currently know of SID given in connect descript
  19. 苹果mac休眠快捷键_史上最详细的苹果Macbook快捷键使用
  20. s32k118CAN通信问题

热门文章

  1. 网站可行性报告范文_鄂州编写可行性报告公司2020范文格式
  2. 【idea】IntelliJ IDEA如何快速的定位数据库某张表在哪里调用---超详情!!!
  3. 常见设计模式笔试面试题
  4. Tomcat - 深度学习 - 类加器详解
  5. HTML、纯JS实现语音播放,实现定时刻播放
  6. 台式计算机无法开机原因,电脑三五个月不开机,无法点亮屏幕怎么办?
  7. 再也不用熬夜爆肝做汇报了!PPT生成神器ChatBCG来啦!
  8. laravel 使用队列进行微信模板消息的群发
  9. android 3d车辆轨迹,极限汽车轨迹3D游戏
  10. 操作系统-复习-考题预测及解析-期中考试