init.lua 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. local npairs = require('nvim-autopairs')
  2. local Rule = require('nvim-autopairs.rule')
  3. -- skip it, if you use another global object
  4. _G.MUtils= {}
  5. vim.g.completion_confirm_key = ""
  6. MUtils.completion_confirm=function()
  7. if vim.fn.pumvisible() ~= 0 then
  8. if vim.fn.complete_info()["selected"] ~= -1 then
  9. return vim.fn["compe#confirm"](npairs.esc("<cr>"))
  10. else
  11. return npairs.esc("<cr>")
  12. end
  13. else
  14. return npairs.autopairs_cr()
  15. end
  16. end
  17. require("nvim-autopairs.completion.compe").setup({
  18. map_cr = true, -- map <CR> on insert mode
  19. map_complete = true -- it will auto insert `(` after select function or method item
  20. })
  21. npairs.setup({
  22. check_ts = true,
  23. ts_config = {
  24. lua = {'string'},-- it will not add pair on that treesitter node
  25. javascript = {'template_string'},
  26. java = false,-- don't check treesitter on java
  27. }
  28. })
  29. require('nvim-treesitter.configs').setup {
  30. autopairs = {enable = true}
  31. }
  32. local ts_conds = require('nvim-autopairs.ts-conds')
  33. -- press % => %% is only inside comment or string
  34. npairs.add_rules({
  35. Rule("%", "%", "lua")
  36. :with_pair(ts_conds.is_ts_node({'string','comment'})),
  37. Rule("$", "$", "lua")
  38. :with_pair(ts_conds.is_not_ts_node({'function'}))
  39. })