как исправить комментирование в конфигурации языка / кода или текстового партнера - PullRequest
0 голосов
/ 05 февраля 2020

Я написал основную подсветку синтаксиса c для кода VS, но у меня проблемы с комментариями (которые в основном Java комментарии). Подсветка помечает / * и * /, но не помечает остальную часть комментария ...

Основываясь на документации, я понял, что правильный способ определения правил комментариев был:

"comments" : {
    "patterns": [
        {
           "begin": "//",
           "end": "$",
           "name": "comment.line.double-slash.astra"
        },
        {
            "begin": "/\\*",
            "end" : "\\*/",
            "name": "comment.block.astra"
        }
     ]
},

Может кто-нибудь объяснить, что я делаю неправильно ...

Полный код подсветки синтаксиса приведен ниже:

{
    "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
    "name": "ASTRA",
    "patterns": [
        {
            "include": "#keywords"
        },
        {
            "include": "#strings"
        },
        {
            "include": "#comments"
        }
    ],
    "repository": {
        "keywords": {
            "patterns": [{
                "name": "keyword.control.astra",
                "match": "\\b(if|while|foreach|forall|else|done|message|at_index|list_count)\\b"
            },
            {
                "name" : "keyword.control.astra",
                "match" : "\\+|-|\\*|/|%|!|@|\\$"
            },
            {
                "name" : "keyword.other.astra",
                "match" : "\\b(package|agent|extends|import|module|rule|goal|types|formula|inference|body|initial|try|recover|send)\\b"
            },
            {
                "name" : "entity.name.type.astra",
                "match" : "\\b(string|list|int|long|float|double|boolean|funct)\\b"
            },
            {
                "name" : "constant.language.astra",
                "match" : "\\b(true|false)\\b"
            }
        ]},
        "strings": {
            "name": "string.quoted.double.astra",
            "begin": "\"",
            "end": "\"",
            "patterns": [
                {
                    "name": "constant.character.escape.astra",
                    "begin": "\\",
                    "end" : "$"
                }
            ]
        },
        "comments" : {
            "patterns": [
                {
                   "begin": "//",
                   "end": "$",
                   "name": "comment.line.double-slash.astra"
                },
                {
                    "begin": "/\\*",
                    "end" : "\\*/",
                    "name": "comment.block.astra"
                }
             ]
        },
        "supports": {
            "patterns": [
                {
                    "match": "(?:^|\\s)[@]\\w+\\b",
                    "name": "constant.numeric.astra"
                },
                {
                    "match": "\\b[a-z]\\w*\\b",
                    "name": "support.type.astra"
                }
            ]
         }
    },
    "scopeName": "source.astra"
}
...