【发布时间】:2017-03-05 14:06:00
【问题描述】:
过去,我已经为简单的自定义格式做了几个语法高亮文件(甚至稍微改变了格式,以便能够根据我的技能制作语法文件,效果上)。
但这一次我感到困惑,我会感谢一些帮助。
文件格式(显然)是一个文本文件,其中每一行包含三个由空格分隔的不同元素,它们可以是“符号”(包含一系列字母数字字符和连字符的名称)或“字符串”(一系列任意字符,包括空格,但不包括管道)。
字符串只能位于行首或行尾,中间元素只能是符号。如果字符串是第一个元素,则字符串在末尾用竖线分隔,如果是最后一个元素,则在开头用竖线分隔。
但一行也可以是所有符号,字符串首尾符号,字符串尾尾符号。
如果字符串是第一个元素,则字符串后面总是跟一个管道,或者 如果它们是最后一个元素,则使用管道作为前缀。
例子:
所有符号
this-is-a-symbol another-one and-another
第一个字符串
This is a string potentially containing any char| symbol symbol
最后一个字符串
symbol symbol |A string at the end of the line
第一个和最后一个字符串
This is a string| now-we-have-a-symbol |And here another string
这四个示例是正确格式化的唯一可能性。
所有符号都需要不同颜色,第一个元素使用特定颜色,第二个元素使用特定颜色,第三个元素使用一个特定颜色。 但无论位置如何,字符串都会有一种独特的不同颜色。
如果管道字符可以用与背景相似(不完全相同)的颜色“变暗”,这将是一个很大的优势。但我想我可以自己解决这个问题。
文件中与显示的行不同的行必须突出显示为错误(如红色背景)。
一些帮助?
ps:stackoverflow 对我的示例应用了一种语法突出显示,这可能会产生误导
【问题讨论】:
-
这是一种疯狂的格式。 (这也是模棱两可的。)
-
我认为它对于它需要服务的目的来说是实用和简洁的,它定义得很好,我可以很容易地用正则表达式解析它。但我不知道如何在 Vim 中突出显示它,在这种情况下我同意这很疯狂,因为我什至无法开始这样做......
-
到目前为止你有没有尝试过?通过展示您的尝试并描述您遇到困难的部分,我们可以更好地了解您的熟练程度并给出更准确的答案。就目前而言,看起来您已经发布了需求并希望有人为您编写代码。
标签: regex vim syntax-highlighting file-format vim-syntax-highlighting