如何在VSCode中通过索引定位列表元素的声明位置?
问题:通过索引快速定位列表元素声明位置
基本需求
希望找到无需执行代码的简便方法,通过指定索引定位列表元素的声明位置。例如对于如下列表:
var myList = [ "a", "b", "c", "d", "e", // ... ]
能否在编辑器中直接跳转到第16项或任意指定索引元素的声明处?
具体场景
我有一个名为l的函数对象列表,代码格式如下:
const l = [function(e, t, i) { var n = i(5) , r = i(14) // ... (more code here) } , function(e, t) { // ... } , // ... (many more items in list) ]
说明:我并非该代码的编写者,也无意修改其功能或使用的方法,仅需便捷的导航方式。
这些函数通过索引被调用(如i(14)调用列表中的第14个函数),导致我难以分辨当前调用的是哪个函数,因此需要简便方法找到列表中第14个函数的位置。
VSCode的面包屑功能虽能显示所有列表项,但未提供索引标识,目前也无法通过下拉菜单的位置或“转到定义”功能定位指定索引的列表项。
解决方法
方法1:正则表达式查找(无需扩展)
在VSCode的查找框(Ctrl+F)中启用正则匹配(点击.*按钮),使用以下正则定位列表元素:
^\s*(function|["'].*["']),?\s*$
点击「查找全部」后,在结果列表中按计数跳转:若目标是索引14的元素,直接点击第15条结果(查找结果从1开始计数,对应0起始的索引)。
方法2:VSCode扩展辅助
安装List Index Navigator扩展,打开命令面板(Ctrl+Shift+P),输入List Index Navigator: Go to Index,输入目标索引即可直接跳转至对应列表元素位置。
方法3:临时添加索引注释(不影响代码功能)
临时在每个列表元素前添加索引注释,用完可批量删除:
const l = [/* 0 */function(e, t, i) { var n = i(5) , r = i(14) // ... } , /* 1 */function(e, t) { // ... } , /* 2 */function() { // ... } // ... ]
查找时直接搜索/* 14 */即可快速定位目标元素。
内容的提问来源于stack exchange,提问作者The I1
相关产品推荐
相关产品推荐

