浏览代码

Fix Autopairs Not working issue using Treesitter (#315)

Ferran Sulaiman 4 年之前
父节点
当前提交
2db9f1c56a
共有 1 个文件被更改,包括 24 次插入0 次删除
  1. 24 0
      lua/lv-autopairs/init.lua

+ 24 - 0
lua/lv-autopairs/init.lua

@@ -78,6 +78,7 @@
 
 
 local remap = vim.api.nvim_set_keymap
 local remap = vim.api.nvim_set_keymap
 local npairs = require('nvim-autopairs')
 local npairs = require('nvim-autopairs')
+local Rule = require('nvim-autopairs.rule')
 
 
 -- skip it, if you use another global object
 -- skip it, if you use another global object
 _G.MUtils= {}
 _G.MUtils= {}
@@ -97,3 +98,26 @@ end
 
 
 
 
 remap('i' , '<CR>','v:lua.MUtils.completion_confirm()', {expr = true , noremap = true})
 remap('i' , '<CR>','v:lua.MUtils.completion_confirm()', {expr = true , noremap = true})
+
+npairs.setup({
+    check_ts = true,
+    ts_config = {
+        lua = {'string'},-- it will not add pair on that treesitter node
+        javascript = {'template_string'},
+        java = false,-- don't check treesitter on java
+    }
+})
+
+require('nvim-treesitter.configs').setup {
+    autopairs = {enable = true}
+}
+
+local ts_conds = require('nvim-autopairs.ts-conds')
+
+-- press % => %% is only inside comment or string
+npairs.add_rules({
+  Rule("%", "%", "lua")
+    :with_pair(ts_conds.is_ts_node({'string','comment'})),
+  Rule("$", "$", "lua")
+    :with_pair(ts_conds.is_not_ts_node({'function'}))
+})