time-geekbang

11 | 一定要用好代码折叠、小地图和面包屑特性

★前言

之前学习了如何利用悬停窗口、建议列表等特性……

其实我们学习的是如何能够在编辑器里轻松地看到“更多”内容,以及如何能够更快速或高效率地跳转

现在就重新换个角度,看看怎么能在编辑器里看到“更少”的内容,或者尽可能地只看自己想看的内容。

1564143977174

★代码折叠

◇花括号是用来打酱油的吗?

◇有哪些姿势可以折叠代码?

◇基于语言定义的代码折叠

上边的代码折叠的判断方式,是通过花括号或者代码缩进的检测来实现的

HTML代码的折叠就是通过对代码缩进的检测来实现的

所以,假如遇到不使用花括号或者缩进不正确的代码时,可能就不能实现这样的操作了。(Why)

因此,VS Code 给语言服务提供了一个接口,语言服务可以动态地检测代码,然后告诉 VS Code 哪段代码是可以被折叠的。(What)

How:

public class Main {
  // region Main
  public static void main(String[] args) {
  }
  // endregion
}

// region Main 申明了一个可折叠代码块的开始,而// endregion则申明了这段可折叠代码的结束。

总之,这种姿势是基于特殊的语言所定义的

至于哪个语言可以使用哪些关键词来控制代码的折叠,还请参考 VS Code 的官方文档

如:

  1. TypeScript/JavaScript: //#region and //#endregion and //region and //endregion
  2. Markdown: <!-- #region --> and <!-- #endregion -->

★小地图

我默认不要缩略图了,因为我的屏幕并不大——15.6英寸。

★面包屑

如果我不想记忆那么多快捷键的话,那么我会直接使用面包屑功能

★小结

★Q&A

①请问下老师vscode的user版本和普通版本有什么区别?

User 版是只有当前用户使用,而普通版本是给系统所有用户使用的,后者要的权限更多

那就选择用户版吧!

②如何恢复默认快捷键?

可以打开快捷键设置界面,找到这个命令,右键,然后选择重置按键绑定

③今天发现在vscode里,java和groovy没法一起工作。可以有办法解决吗?

你说的是这个情况不 https://github.com/redhat-developer/vscode-java/issues/205