1
0
Fork 0
mirror of https://github.com/pnx/tree-sitter-dotenv synced 2026-08-15 00:58:11 +02:00
tree-sitter-dotenv/docs/neovim.md

1.9 KiB

Neovim

nvim-treesitter

To use this parser in neovim, configure nvim-treesitter.

For minimal, ready-to-run local test configs (both main and legacy master), see test/nvim/README.md.

nvim-treesitter main (new API)

Use this if you are on the rewritten main branch (Neovim 0.12+):

vim.api.nvim_create_autocmd('User', {
    pattern = 'TSUpdate',
    callback = function()
        require('nvim-treesitter.parsers').dotenv = {
            install_info = {
                url = 'https://github.com/pnx/tree-sitter-dotenv',
            },
            filetype = "dotenv"
        }
    end,

    vim.filetype.add({
        filename = {
            ['.env'] = 'dotenv',
        },
        pattern = {
            ['%.env%..+'] = 'dotenv',
        },
    })
})

vim.api.nvim_create_autocmd('FileType', {
  pattern = 'dotenv',
  callback = function() pcall(vim.treesitter.start) end,
})

nvim-treesitter master (legacy API)

Use this if you are on the legacy master branch (Neovim 0.10/0.11), add this to config block:

config = function(_, opts)
    local parser_config = require("nvim-treesitter.parsers").get_parser_configs()

    -- Tell treesitter where dotenv parser is located
    parser_config.dotenv = {
        install_info = {
            url = "https://github.com/pnx/tree-sitter-dotenv",
            branch = "main",
            files = { "src/parser.c", "src/scanner.c" },
        }
    }

    vim.filetype.add({
        filename = {
            ['.env'] = 'dotenv',
        },
        pattern = {
            ['%.env%..+'] = 'dotenv',
        },
    })
end


Then run :TSInstall dotenv.

Syntax highlighting

In order for neovim to know how to color the text, a highlights.scm file is needed. Copy highlights.scm from this repo to your nvim config under queries/dotenv/highlights.scm