gpt4 book ai didi

visual-studio-code - 将 .sublime-syntax (YAML) 转换为 VSCode 兼容的语法

转载 作者:行者123 更新时间:2023-12-05 06:10:03 27 4
gpt4 key购买 nike

我已经为 Sublime Text 3 创建了一个 .sublime-syntax 语法定义,用于我自己的编程语言 ( Arturo )。

这是来自 corresponding repository 的完整语法:

%YAML 1.2
---
file_extensions:
- art
scope: source.arturo
contexts:
########################
# MAIN
########################

main:
## COMMENTS

# She-bang line
- match: '#!'
scope: punctuation.definition.comment.arturo
push: line_comment

# Single-line comments
- match: ;
scope: punctuation.definition.comment.arturo
push: line_comment

### STRINGS

# Double-quoted string literals
- match: '"'
scope: string.quoted.double.arturo
push: double_quoted_string

# FullLine strings
- match: «
scope: keyword.operator.arturo
push: fullline_string

# Curly strings
- match: '{'
scope: text.plain.arturo
push: curly_string

# Triple-dash strings
- match: '---'
scope: string.quoted.double.arturo
push: triple_dash_string

### LITERALS

# numbers
- match: '[0-9]+(\.[0-9]+)?'
scope: text.plain.arturo

# characters
- match: '`.`'
scope: string.quoted.double.arturo

# boolean
- match: 'true|false'
scope: constant.language.arturo

# boolean
- match: 'null'
scope: constant.language.arturo

### SYMBOLS

# syntactic sugar
- match: '(->|=>|\|)'
scope: markup.heading.arturo punctuation.definition.heading.arturo

# operators
- match: '@|#|\+|\||\*|\$|\-|\%|\/|\.\.|\^|~|=|<|>|\\|\-\-\-'
scope: keyword.operator.arturo

### LABELS

# label
- match: '([\w]+\b\??:)'
scope: entity.name.arturo

########################
# SUBSCOPES
########################

line_comment:
- meta_scope: comment.line.arturo
- match: $
pop: true

double_quoted_string:
- meta_include_prototype: false
- meta_scope: string.quoted.double.arturo
- match: '\\.'
scope: constant.character.escape.arturo
- match: '\|'
scope: markup.heading.arturo punctuation.definition.heading.arturo
push:
- clear_scopes: true
- meta_scope: source.arturo
- match: '\|'
scope: markup.heading.arturo punctuation.definition.heading.arturo
pop: true
- include: 'main'
- match: '"'
scope: string.quoted.double.arturo
pop: true
- include: escaped

fullline_string:
- meta_scope: markup.heading.arturo
- match: $
pop: true

curly_string:
- meta_include_prototype: false
- meta_scope: text.plain.arturo
- match: '\\.'
scope: constant.character.escape.arturo
- match: '\|'
scope: markup.heading.arturo punctuation.definition.heading.arturo
push:
- clear_scopes: true
- meta_scope: source.arturo
- match: '\|'
scope: markup.heading.arturo punctuation.definition.heading.arturo
pop: true
- include: 'main'

- match: '!html'
scope: markup.heading.arturo punctuation.definition.heading.arturo
push: Packages/HTML/HTML.sublime-syntax
with_prototype:
- match: '\|'
scope: markup.heading.arturo punctuation.definition.heading.arturo
push:
- clear_scopes: true
- meta_scope: source.arturo
- match: '\|'
scope: markup.heading.arturo punctuation.definition.heading.arturo
pop: true
- include: 'main'
- match: 'html!'
scope: markup.heading.arturo punctuation.definition.heading.arturo
pop: true

- match: '!latex'
scope: markup.heading.arturo punctuation.definition.heading.arturo
push: Packages/LaTeX/TeX.sublime-syntax
with_prototype:
- match: '\|'
scope: markup.heading.arturo punctuation.definition.heading.arturo
push:
- clear_scopes: true
- meta_scope: source.arturo
- match: '\|'
scope: markup.heading.arturo punctuation.definition.heading.arturo
pop: true
- include: 'main'
- match: 'latex!'
scope: markup.heading.arturo punctuation.definition.heading.arturo
pop: true

- match: '}'
scope: text.plain.arturo
pop: true
- include: escaped

triple_dash_string:
- meta_include_prototype: false
- meta_scope: string.quoted.double.arturo
- match: '\\.'
scope: constant.character.escape.arturo
- match: '\|'
scope: markup.heading.arturo punctuation.definition.heading.arturo
push:
- clear_scopes: true
- meta_scope: source.arturo
- match: '\|'
scope: markup.heading.arturo punctuation.definition.heading.arturo
pop: true
- include: 'main'
- match: '---'
scope: string.quoted.double.arturo
pop: true
- include: escaped

我现在正尝试将其转换为 VSCode(和 Atom-)兼容的语法定义,但尽管已经阅读了文档的大部分内容,但我仍然感到困惑。

  • 首先,能不能做到? (不牺牲功能)
  • 怎么样? (是否有任何自动化工具?是否在任何地方记录了更改?)

最佳答案

检查 documentation这里

他们建议this tool将 YAML 转换为 JSON

关于visual-studio-code - 将 .sublime-syntax (YAML) 转换为 VSCode 兼容的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64571485/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com