多行字符串文字的语法突出显示

2024-02-25

我有一种自定义语言,我想在 Visual Studio Code 中为其提供语法突出显示。

在这种语言中,字符串文字以双引号或单引号开头和结尾。以双引号开头的字符串文字可以包含单引号,反之亦然。不会发生任何其他引号转义。但无论起始引号类型如何,文字都可能跨越多行。

In my tmLanguage.json文件我尝试了这些正则表达式:

{
    "match": "'[^']*'",
    "name": "string.quoted.single.rss"
},
{
    "match": "\"[^\"]*\"",
    "name": "string.quoted.double.rss"
}

不幸的是,这只适用于单行文字。然后我尝试了

{
    "match": "(?s)'[^']*'",
    "name": "string.quoted.single.rss"
},
{
    "match": "(?s)\"[^\"]*\"",
    "name": "string.quoted.double.rss"
}

但随着(?s)修改语法高亮根本不起作用。

有没有办法匹配多行字符串?


尝试使用begin / end模式而不是简单的match。 Haxe 语言也有多行字符串文字,它匹配如下字符串:

strings:
  patterns:
  - begin: '"'
    beginCaptures:
      '0': {name: punctuation.definition.string.begin.hx}
    end: '"'
    endCaptures:
      '0': {name: punctuation.definition.string.end.hx}
    name: string.quoted.double.hx
    patterns:
    - include: '#string-escape-sequences'

该语法使用 YAML 而不是 JSON 来避免转义正则表达式,但翻译起来应该相当简单。该片段的来源是here https://github.com/vshaxe/haxe-TmLanguage/blob/5bbb350eef6c64e458c11beb7d17cff97ce42aae/haxe.YAML-tmLanguage#L478-L488.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多行字符串文字的语法突出显示 的相关文章

随机推荐

  • python循环创建我知道它很简单但我不知道出了什么问题[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 python 新手尝试创建 while 循环来打印 1 到 10 而不仅仅是 10 I 0 while I 10 I 1 prin
  • 需要帮助在 Python 中添加循环来重新启动程序

    到目前为止 这就是我所得到的 import random answer1 Absolutely answer2 No way Pedro answer3 Go for it tiger answer4 There s different w
  • ASP.NET MVC 样式验证错误?

    ASP NET MVC 的验证错误可以设置样式吗 在哪里 我尝试在 Site css 中编辑 input validation error 类 但这没有任何效果 pom 如果你的风格 field validation error那么这将更改
  • IL 中的 if 是什么样的?

    一个是什么意思if语句编译成 IL 后是什么样子 这是 C 中非常简单的构造 有人能给我一个更抽象的定义吗 这里有一些if语句以及它们如何转换为 IL ldc i4 s 0x2f var i 47 stloc 0 ldloc 0 if i
  • 如何将录制的视频保存到相册中?

    以下代码是将相机拍摄的图像保存到相册中 if mediaType isEqualToString NSString kUTTypeImage image info objectForKey UIImagePickerControllerEd
  • 为什么 Kotlin lang 只允许项目中只有一个 main 函数?

    这是否剥夺了 java 中具有多个主入口点的特性 这些入口点可以在需要时调用 UPDATE Kotlin 的最新版本允许多个main即使在同一个包中也可以运行 如果它们位于不同的文件中 项目中可以有多个主函数 但每个主函数只能有一个pack
  • 纯 CSS 使字体大小根据动态字符数量进行响应

    我知道用 Javascript 可以很容易地解决这个问题 但我只对纯 CSS 解决方案感兴趣 我想要一种动态调整文本大小的方法 以便它始终适合固定的 div 这是示例标记 div style width 200px height 1em p
  • JavaScript 跨浏览器:将字符串视为数组是否安全?

    这段代码在所有主流浏览器中都安全吗 var string 123 alert string 1 2 should alert true 不 这不安全 Internet Explorer 7 不支持按索引访问字符串 你必须使用charAt兼容
  • 如何在 swiftui 中添加自定义圆形滑动操作?

    在我的 SwiftUI 应用程序中 我想在 ListView 中设计圆形滑动操作 如以下示例所示 天气应用程序 iOS 15 我知道您可以添加这样的自定义操作 List Text Pepperoni pizza swipeActions B
  • PHP 或 MySQL 中的业务逻辑?

    在具有合理流量的网站上 如果将应用程序 业务逻辑编写为存储过程 触发器和视图 而不是编写在 PHP 代码本身中 这会重要吗 牢记可扩展性的最佳方法是什么 我无法向您提供统计数据 但除非您计划将来将 PHP 更改为另一种语言 否则我可以说将业
  • 使用 graph api 2.2 从 android 中的 facebook sdk 4.0.1 获取好友列表

    我在进行一些搜索后用于获取列表的代码如下 GraphRequestBatch batch new GraphRequestBatch GraphRequest newMyFriendsRequest accessToken new Grap
  • pg_dump 忽略表顺序?

    我最近一直在玩 PostgreSQL 并且无法理解如何备份和恢复单个表 我使用 pgadmin3 备份数据库中的单个表 以便将其复制到不同的服务器 当我尝试对文件执行 pg restore 时 收到错误消息 指出该序列不存在 pg rest
  • XmlHttpRequest.onload 未调用

    我正在玩这个XmlHttpRequest事物 在一些教程和书籍中 它是onload请求完成时调用的函数 在我的小实验中 这个函数从未被调用 这是我的代码 window onload function var url http www goo
  • 渐变剪切似乎在“无”上窒息

    我正在尝试向我的图表添加渐变裁剪 我使用了这里推荐的方法 如何在tensorflow中有效应用梯度裁剪 https stackoverflow com questions 36498127 how to effectively apply
  • Django 官方教程第 1 部分:运行时错误:cmp 中超出最大递归深度

    根据 django 教程 我创建了项目并执行了manage py runserver 如教程中所述 并且我收到错误 RuntimeError cmp 中超出了最大递归深度 有什么办法可以纠正这个问题吗 我得到这个错误 Validating
  • GoLang - 内存分配 - []byte 与 string

    在下面的代码中 c fool d byte fool fmt Printf c T d n c unsafe Sizeof c 16 bytes fmt Printf d T d n d unsafe Sizeof d 24 bytes 为
  • 非被动滚动事件处理程序的控制台警告

    当我使用 bootstrap vue 中的 Form Select 时 出现此控制台错误 我正在使用谷歌浏览器 违规 向滚动阻塞 鼠标滚轮 事件添加了非被动事件侦听器 考虑将事件处理程序标记为 被动 以使页面响应更快 我使用 axios 从
  • indexpath.row 从 1 而不是 0 开始

    我面临着 uitableview 的问题 有时 当我的表的 datasource numberofrowsinsection 有 3 个值时 cellforowatindexpath 从 0 1 而不是 0 0 开始 有人可以帮我找出发生此
  • 在 Swing 中使图像按钮看起来被按下/单击

    我创建了一个 JButton 其中有一个图像设置为代表该按钮的图标 现在 我已经设置了 setContentAreaFilled false setBorderPainted false setOpaque false 这些属性使图像按钮看
  • 多行字符串文字的语法突出显示

    我有一种自定义语言 我想在 Visual Studio Code 中为其提供语法突出显示 在这种语言中 字符串文字以双引号或单引号开头和结尾 以双引号开头的字符串文字可以包含单引号 反之亦然 不会发生任何其他引号转义 但无论起始引号类型如何