juanfranblanco / vscode-solidity

Visual Studio Code language support extension for Solidity smart contracts in Ethereum https://marketplace.visualstudio.com/items?itemName=JuanBlanco.solidity
MIT License
878 stars 188 forks source link

Feature: mark textmate grammar tokens as unbalanced (vscode 1.67+) #347

Open sambacha opened 2 years ago

sambacha commented 2 years ago

To make bracket pair matching and colorization more robust, TextMate grammar contributions can now express that brackets in certain tokens should not be matched. In the contributes section of an extensions package.json, provided grammars can use the propertiesbalancedBracketScopes(defaults to ["*"]) and unbalancedBracketScopes (defaults to []) to include or exclude scopes for bracket matching.

https://code.visualstudio.com/updates/v1_67#_textmate-grammars-can-mark-tokens-as-unbalanced

An example of a config (not a suggestion for implementation )

"grammars": [
    {
      "language": "solidity",
      "scopeName": "source.solidity",
      "path": "./syntaxes/solidity.tmLanguage.json",
      "balancedBracketScopes": [ "*" ],
      "unbalancedBracketScopes": [ "meta.scope.case-pattern.solidity" ],
      "injectTo": [
        "source.solidity"
      ]
    }
sambacha commented 2 years ago

this could solve for example https://github.com/juanfranblanco/vscode-solidity/issues/339