关于visual-studio-code:VSCode-扩展-tofile-来跳转相对路径文件与补全-Fragment

42次阅读

共计 2504 个字符,预计需要花费 7 分钟才能阅读完成。

tofile

我的项目定义

  • 为不便本我的项目将文件上面的中双箭头模式区域称为 Fragment

    /*\ ## Technical point
    |*|  - R:
    |*|   - [VSCode Open a File In a Specific Line Number Using JS](https://stackoverflow.com/questions/62453615/vscode-open-a-file-in-a-specific-line-number-using-js)
    |*|   - [Capturing keystrokes in visual studio code extension](https://stackoverflow.com/questions/36727520/capturing-keystrokes-in-visual-studio-code-extension#answer-36753622)
    |*|   - [How to open file and insert text using the VSCode API](https://stackoverflow.com/questions/38279920/how-to-open-file-and-insert-text-using-the-vscode-api)
    \*/

个性

  1. 应用命令 tofile 时,将探测以后光标这一行中含相对路径的字符串(像 src/a.ts:2:3 其中 2 为行号,3 为列号,行列可选),并尝试进行在 VSCode 中关上跳转
  2. 通过命令调用(F1 输出 tofile)tofile 将会对以后光标这一行检索含有相对路径写法的字符串来进行用 VSCode 关上这个文件,也就跳转 jump

  1. 补全 Fragment
  • 已知问题

    • 在一般打字删除后面的 |*| 将会呈现(在 Vim 一般模式下没有这个问题)

      • 解决方案:一般打字选中整行并删除
    • 为什么有这个问题

      1. vscode 不反对多个扩大注册 type 命令,它导致只能一个扩大能细粒管制键盘事件
      2. 而我不想将 tofile 写得那么简单
      • Multiple extensions registering the ‘type’ command

当应用仓库中的脚本时会有的依赖,应用 VSCode 扩大 tofile 自身无依赖

  • src/script/fragment.ts 依赖 ts-node ripgrep
  • yarn fragmentnpm run fragment 将会生成 ts-Fragments.md(文件后缀名 + Fragment.md) 在我的项目根目录. 我的项目也一个例子.
  • yarn fragmentnpm run fragment 的脚本是 ts-node -P ./tsconfig.json ./src/script/fragment.ts ts, 当你应用这个 ts 脚本时, 须要指定 tsconfig.json,脚本的门路 和一个文件后缀名类型 , 这里是 ts

Fragment 应用留神

  • 当应用字面量正则表达式 */ 将会报错

    • Can’t use literal Regex

      • 报错例子

        /*\ ## only match space
        |*|  '\n'.match(/^\x20*/
        \*/
      • 解决方案:应用变通方法来表白

        /*\ ## only match space
        |*|  ```ts
        |*|  '\n'.match(new RegExp(String.raw`^\x20*`))
        |*|  ```
        \*/

建项起因

  • 当你在写大型的我的项目时,会遇见林林总总各式各样的问题。
  • 通常来说,都是通过搜索引擎来找寻类似问题的答案来做参考,(当本人就能解决了,就会省去这一步,然而往往问题的解决方案不只一个。也常常会呈现要留神的事)
  • 将下面几个要点抽离进去就成

    • 问题
    • 多个解决方案
    • 参考
    • 注意事项
  • 这几样货色齐全能够通过标准的 Markdown 格局来做一个模版
> Q: Question(问题)> N: Note(注意事项)> A: Answers(解决方案)> R: Reference(参考)## 怎么中断 for 
- N:
  > aaaa
- A:
  - aaaa
  - bbbb
- R:
  - [中断 for](https://****.com)
  - [中断 for](https://****.com)
  • 也能简写成通过上面的规定

    • 题目 示意问题
    • 没写代表目前没有这个
    • > 语法 代表注意事项
    • 每一个单行列表 代表一个解决方案
    • 单行列表为链接时 代表参考
## 怎么中断 for 
> aaaa
- aaaa
- bbbb
- [中断 for](https://****.com)
- [中断 for](https://****.com)
  • 然而这个只是在 Markdown 文件实用,而且这个模版写法只是记录下事件问题的法则,当没有这个问题产生时,就会变费劲还没有用
  • 所以我想不对现有的状况做出大的扭转,而又建设的新的写法习惯。
  • 这个新的写法习惯就是将下面的 Markdown 中的模版写法,写入进代码正文中 像 TypeScript/JavaScript
  • 写入代码正文的样子像

    /*\ ## 中断 `forof`
    |*| > 只能在应用
    |*| - throw new Error('')
    |*| - break
    |*| - [中断 for](https://****.com)
    \*/
  • 为什么应用这个格局 /*\ |*| \*/

    • 在代码中能直观晓得这是一个 Fragment
    • 在 VSCode 等编辑器,会 间接反对折叠正文块,折叠后会只有一行问题显示,让代码喧扰一些

  • 下面的 Markdown 中的模版写法,应用 snippet 就是容易就做到的一件事(如 vscode snippet)
  • 下面的 Markdown 中的模版写法,写入代码文件中,有 益处

    • QARN (Question,Answers,Reference,Note) 与代码在一个中央,化零为整
    • 我的项目的正确则代表问题有解
    • 疾速 深刻代码 这很 native
  • 然而将下面的 Markdown 中的模版写法,写入进代码正文中的 毛病 就是

    • 将各个林林总总的问题扩散到我的项目中各个小文件中去了,
    • 不利于 检索
    • 不利于 汇总记录
  • 所以也就有了这个我的项目 tofile
  • 通过 ripgrep 抽出各个代码文件中的问题,并记录下文件在我的项目中的地位,并生成一个具备目录性质的 Markdown 文件。
  • 下面这个事通过任意的脚本都是很容易做到的,
  • 但这个脚本是只是 汇总记录 检索 应该放到编辑器行为。
  • 所以 tofile 来做这个

Donation

正文完
 0