vscode 是否有“格式选择为...”命令?

fhity93d  于 4个月前  发布在  Vscode
关注(0)|答案(4)|浏览(55)

我花了很多时间编写带有许多JSON示例的Markdown。我的JSON来源通常没有很好地格式化JSON,或者我手动编写JSON但在格式上犯了一些错误。希望能选择Markdown代码块内的所有内容并说“将选择格式化为...”,然后选择JSON。
或者更好的是,让命令从围栏代码块(```json在这种情况下)检测格式选项。
当前的解决方法是复制/粘贴到一个JSON文档中。格式化文档。复制/粘贴回markdown文档。

zzlelutf

zzlelutf1#

我很高兴这个问题在待办事项列表中,希望能够在这方面取得一些进展。我也希望拥有这个功能。

就我目前的情况而言,我使用的是Shopify主题,这些主题可以在同一个文件中有多种不同的格式:CSS、JavaScript、JSON、HTML、Liquid等。因此,高亮显示文件的某些部分,发出*"Format Selection As"*命令并选择一种特定的语言来单独格式化该选择将非常有用。

在这里还要指出的是,这个问题之前已经提出过 #27073 ,但在问题整理练习中被关闭了。

@michaelgwelch 另一个解决方法:你可以临时将markdown文件扩展名重命名为 .md.json ,格式化你的JSON代码块,然后将其重命名为 .md

eblbsuwk

eblbsuwk2#

i. 我非常希望看到这个功能也能实现。类似于其他人在这里和#27073中提到的,我对需要VSCode通过编程来推测解析结果的语言进行语法高亮不感兴趣,而且最终的语言指定也不应该从多个语言中选择一个,而是应用于结果的每个元素,即任何增强或扩展VSCode对文件中所有正确格式化代码的语法高亮能力的函数。其中,用于验证和高亮语法的language值既不是原子性的,也不是作为参数(或功能等效)提供给高亮语法过程的。相反,我只希望能够手动指定在文件中使用指定语言解析的子字符串,然后应用现有的语言扩展进行语法高亮。这些扩展的操作方式类似,但是它们与文件关联的语言不同,而是与某个子字符串对象关联。子字符串对象可以有多种定义方式。最糟糕的情况是与文件中位置相关的静态赋值(例如,由常量行和列坐标定义的开始和结束位置),但理想情况下,它应该是动态的——我设想的是类似于Wᴏʀᴅ中的Range对象的功能,依赖于根据多个参数评估边界动态的方法来提供可接受的常见、可预见的编辑5的容差范围,以便以符合合理用户期望的方式调整Range边界(在创建时强制为Range分配语言应该使相对容易跟踪边界的健壮函数成为可能)。最后,某种图形指示器会极大地提高可用性,例如一个大纲包围范围,鼠标悬停或光标位于范围内时显示,边界上有调整大小的手柄(使用这些手柄调整类似于用鼠标高亮文本),以及可能在顶部和底部边缘(这将使整个行从范围中递增或递减),并为每个范围或具有相同语言指定的一组范围使用不同的大纲颜色。

  1. VSCode必须能够验证格式化,除了这个要求之外,对于尚未安装的语言编写的任何代码都适用。
  2. 在这里,atomic指的是单一值的类型,与包含多个值的复合类型(例如数组、列表或集合)相对。
  3. 在这里,功能等效意味着包括当调用syntax-highlighting过程时初始化的language状态。
  4. 类似于这个请求的例子可以在此处找到:#14447
  5. 例如,为了动态地(a)增加或减少Range的上限以适应在其中插入或删除的内容,或者(b)根据其前面文本长度的变化而向前或向后移动Range的下限。
f5emj3cl

f5emj3cl3#

在Stack Overflow上,有一个相关的问题:Formatting contents of a Markdown code fences in VS Code (or other embedded language code)。对于这个问题,#14447也是相关的。

yhqotfr8

yhqotfr84#

这是另一个相关的项目( #183466 ),这次提到的是JavaScript和一个缺失的"Format Selection With..."命令,这个命令也可以解决这个问题,而且在VS Code的其他上下文中显然是可用的。

相关问题