Price Hiller
08e9ada208
This deprecates the old setup layout Closes https://github.com/PriceHiller/nvim-ts-autotag/issues/5 |
||
---|---|---|
.github | ||
lua | ||
plugin | ||
sample | ||
tests | ||
.editorconfig | ||
.gitignore | ||
.luarc.json | ||
LICENSE | ||
Makefile | ||
README.md |
nvim-ts-autotag
Use treesitter to autoclose and autorename html tag
It works with:
- astro
- glimmer
- handlebars
- html
- javascript
- jsx
- markdown
- php
- rescript
- svelte
- tsx
- twig
- typescript
- vue
- xml
and more
Usage
Before Input After
------------------------------------
<div > <div></div>
<div></div> ciwspan<esc> <span></span>
------------------------------------
Setup
Requires Nvim 0.9.0
and up.
require('nvim-ts-autotag').setup()
Caution
If you are setting up via
nvim-treesitter.configs
it has been deprecated! Please migrate to the new way. It will be removed in1.0.0
.
Extending the default config
Let's say that there's a language that nvim-ts-autotag
doesn't currently support and you'd like to support it in your
config. While it would be the preference of the author that you upstream your changes, perhaps you would rather not 😢.
For example, if you have a language that has a very similar layout in its Treesitter Queries as html
, you could add an
alias like so:
require('nvim-ts-autotag').setup({
aliases = {
["your language here"] = "html",
}
})
-- or
local TagConfigs = require("nvim-ts-autotag.config.init")
TagConfigs:add_alias("your language here", "html")
That will make nvim-ts-autotag
close tags according to the rules of the html
config in the given language.
But what if a parser breaks for whatever reason, for example the upstream Treesitter tree changes its node names and now
the default queries that nvim-ts-autotag
provides no longer work.
Fear not! You can directly extend and override the existing configs. For example, let's say the start and end tag
patterns have changed for xml
. We can directly override the xml
config:
local TagConfigs = require("nvim-ts-autotag.config.init")
TagConfigs:update(TagConfigs:get("xml"):override("xml", {
start_tag_pattern = { "STag" },
end_tag_pattern = { "ETag" },
}))
In fact, this very nearly what we do during our own internal initialization phase for nvim-ts-autotag
.
Enable update on insert
If you have that issue #19
vim.lsp.handlers['textDocument/publishDiagnostics'] = vim.lsp.with(
vim.lsp.diagnostic.on_publish_diagnostics,
{
underline = true,
virtual_text = {
spacing = 5,
severity_limit = 'Warning',
},
update_in_insert = true,
}
)
Fork Status
This is forked from https://github.com/windwp/nvim-ts-autotag due to the primary maintainer's disappearance. Any PRs/work given to this fork may end up back in the original repository if the primary maintainer comes back.
Full credit to @windwp for the creation of this plugin. Here's to hoping they're ok and will be back sometime down the line.