dotfiles/home/config/nvim/plugins/treesitter.fnl

80 lines
5.4 KiB
Fennel

(let [treesitter-config (require :nvim-treesitter.configs)
nifoc-treesitter (require :nifoc.treesitter)
disable-parsers []]
(nifoc-treesitter.setup)
(treesitter-config.setup {:parser_install_dir _G.nvim_treesitter_parser_directory
:ensure_installed [:angular
:bash
:css
:diff
:dockerfile
:eex
:elixir
:elvish
:erlang
:fennel
:fish
:git_config
:git_rebase
:gitattributes
:gitcommit
:gitignore
:graphql
:heex
:html
:http
:java
:javascript
:jsdoc
:json
:just
:lua
:make
:markdown
:markdown_inline
:nix
:python
:query
:regex
:ruby
:scss
:sql
:styled
:svelte
:toml
:tsx
:typescript
:vim]
:sync_install false
:auto_install false
:highlight {:enable true :disable disable-parsers}
:indent {:enable true :disable disable-parsers}
:matchup {:enable true :disable disable-parsers}
:autopairs {:enable true :disable disable-parsers}
:playground {:enable true}
:nifoc_hooks {:enable true
:disable disable-parsers}
:textobjects {:select {:enable true
:lookahead true
:keymaps {:af {:query "@function.outer"
:desc "Select outer part of a function"}
:if {:query "@function.inner"
:desc "Select inner part of a function"}
:ac {:query "@class.outer"
:desc "Select outer part of a class"}
:ic {:query "@class.inner"
:desc "Select inner part of a class"}
:as {:query "@scope"
:desc "Select language scope"}}}
:swap {:enable true
:swap_next {:<leader>a {:query "@parameter.inner"
:desc "Swap function parameter with the next one"}}
:swap_previous {:<leader>A {:query "@parameter.inner"
:desc "Swap function parameter with the previous one"}}}
:lsp_interop {:enable true
:border :rounded
:floating_preview_opts {}
:peek_definition_code {:<leader>lpf {:query "@function.outer"
:desc "Peek outer function definition"}
:<leader>lpF {:query "@class.outer"
:desc "Peek outer class definition"}}}}}))