diff options
Diffstat (limited to 'fnl/plugins/snippets')
-rw-r--r-- | fnl/plugins/snippets/init.fnl | 31 | ||||
-rw-r--r-- | fnl/plugins/snippets/org.fnl | 13 |
2 files changed, 44 insertions, 0 deletions
diff --git a/fnl/plugins/snippets/init.fnl b/fnl/plugins/snippets/init.fnl new file mode 100644 index 0000000..b586d76 --- /dev/null +++ b/fnl/plugins/snippets/init.fnl @@ -0,0 +1,31 @@ +;; Snippets functionality. + +(local dependencies [:rafamadriz/friendly-snippets]) + +(fn add-snippets [] + (let [org (require :plugins.snippets.org)] + (org.add-snippets))) + +(fn config [] + (let [ls (require :luasnip) + luasnip-vscode (require :luasnip.loaders.from_vscode)] + (luasnip-vscode.lazy_load) + (add-snippets) + (ls.config.set_config {:history false + :updateevents "TextChanged,TextChangedI"}) + (vim.keymap.set [:i :s] :<c-k> + (lambda [] + (when (ls.expand_or_jumpable) + (ls.expand_or_jump))) {:silent true}) + (vim.keymap.set [:i :s] :<c-j> + (lambda [] + (when (ls.jumpable -1) + (ls.jump -1)) + {:silent true})) + (vim.keymap.set [:i] :<c-l> + (lambda [] + (when (ls.choice_active) + (ls.change_choice 1))) + {:silent true}))) + +{1 :L3MON4D3/LuaSnip :event :InsertEnter : config : dependencies} diff --git a/fnl/plugins/snippets/org.fnl b/fnl/plugins/snippets/org.fnl new file mode 100644 index 0000000..a2b2e46 --- /dev/null +++ b/fnl/plugins/snippets/org.fnl @@ -0,0 +1,13 @@ +;; Snippets for org files. + +(fn add-snippets [] + (let [ls (require :luasnip) + fmt (require :luasnip.extras.fmt)] + (let [s ls.s + i ls.insert_node + fmt fmt.fmt] + (ls.add_snippets :org + [(s :be + (fmt "#+begin_src {}\n{}\n#+end_src" [(i 1) (i 2)]))])))) + +{: add-snippets} |