1 个不稳定版本

0.2.37-alpha.12024 年 8 月 23 日

#113 in 文本编辑器

MIT 许可证

1.5MB
60K SLoC

C 60K SLoC // 0.0% comments Scheme 157 SLoC JavaScript 97 SLoC // 0.2% comments Rust 33 SLoC // 0.1% comments

tree-sitter-bend

Bend 语法,用于 tree-sitter

用法

Neovim

安装

首先,您需要使用您喜欢的依赖管理器安装 nvim-treesitter,例如 lazy.nvim

之后,您应该在 Neovim 配置中添加以下代码片段,在调用 require("nvim-treesitter.configs").setup() 后面。配置文件可以在 ~/.config/nvim/init.lua 中找到或创建。

local parser_config = require("nvim-treesitter.parsers").get_parser_configs()
parser_config.bend = {
  install_info = {
    url = "https://github.com/HigherOrderCO/tree-sitter-bend",
    files = { "src/parser.c", "src/scanner.c" },
    branch = "main",
  },
}

vim.filetype.add({
  extension = {
    bend = "bend",
  },
})

vim.treesitter.language.register("bend", { "bend" })

使用 lazy.nvim,您的配置可能如下所示

plugins = {
  {
    "nvim-treesitter/nvim-treesitter",
    build = ":TSUpdate",
    config = function () 
      local configs = require("nvim-treesitter.configs")

      configs.setup({
        ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "elixir", "heex", "javascript", "html" },
        sync_install = false,
        highlight = { enable = true },
        indent = { enable = true },
      })
      
      local parser_config = require("nvim-treesitter.parsers").get_parser_configs()
      parser_config.bend = {
        install_info = {
          url = "https://github.com/HigherOrderCO/tree-sitter-bend",
          files = { "src/parser.c", "src/scanner.c" },
          branch = "main",
        },
      }
      
      vim.filetype.add({
        extension = {
          bend = "bend",
        },
      })

      vim.treesitter.language.register("bend", { "bend" })
    end
  }
}

require("lazy").setup(plugins)

最后,通过在 Neovim 中运行 :TSInstall bend 命令将语言语法安装到 tree-sitter 插件中。

语法高亮

为了使语法高亮功能正常工作,您需要在 Neovim 配置根目录中创建一个 queries/bend 目录,并将文件 highlights.scm 复制到其中。

之后,您可能需要通过在 Neovim 中运行 :TSUpdate 命令来更新 Tree-sitter 插件。

VSCode

您可以通过我们的 VSCode 扩展在 VSCode 中使用语法高亮,查看其仓库 这里

贡献

语法描述可以在目录 ./grammar 中找到,由主文件 ./grammar.js 调用。其他大多数文件都是使用 tree-sitter generate 由 tree-sitter CLI 自动生成的。

协作者

该项目由 Victor Hugo Gomes (@LaBatata101 在 GitHub 上) 启动。谢谢!

依赖关系

~2.8–4MB
~72K SLoC