【笔记】简单实现vscode read-only模式插件

尝试玩了一下vscode插件,困惑着如果有人想启动一个vscode instance,只想读代码,不想无意中修改了代码。查了一下github上vscode的issue,有一些人提,但是都没有解决方法;还有一些人说看能不能拿到moanco editor的instance就解决问题了,然后下面就是一个回复“不可能”就close了。那怎么实现vscode打开文档是read-only模式呢?

其实做一遍,就发现非常简单。当然,我们目前的需求只是无意按键后不要修改文档,暂时不想管太多比如复制/粘贴,比如格式化文档后怎么办。

代码:https://github.com/stallpool/vscode-readonly-extension
编译好的直接能安装的vsix文件下载:https://github.com/stallpool/vscode-readonly-extension/releases/tag/1.0.0

二话不说,先上code。这里其实就是拿两个samples拼接出来的一个extension,在github的repo上也注明了reference。一个是 statusbar 的sample extension,一个是 vim 的sample extension。

原理就是 editor 有一个 type command,当输入之后就会触发这个command,所以把这个command覆盖掉就能做到在typing的时候什么都不发生了。为了能有个开关,定义一下configuration的item,来一个 readOnly 变量控制,如果开,那么什么都不发生,否则将 type 的执行丢给 default:type 去执行,这样又可以键盘输入了。

statusbar就是定义一个statusbar item,然后开关给出当前readonly的文本描述。再注册一个命令开关readonly模式。

原理知道了,想必大家也都清楚怎么禁止 copy/paste 了,进一步加强readonly,这都是后话了。Enjoy.

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值