From 2cfa92212b48995370476003765c656a1511f76a Mon Sep 17 00:00:00 2001 From: Mora Unie Youer Date: Wed, 16 Jul 2025 12:43:28 +0300 Subject: feat: add plugins and settings for SuperCollider --- flake.nix | 3 +++ lua/config/plugins/extra.lua | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/flake.nix b/flake.nix index 6b9a9b6..195f149 100644 --- a/flake.nix +++ b/flake.nix @@ -270,6 +270,9 @@ oil-nvim yanky-nvim which-key-nvim + + # SuperCollider + scnvim ]; }; }; diff --git a/lua/config/plugins/extra.lua b/lua/config/plugins/extra.lua index 2f7bf9c..1241f6c 100644 --- a/lua/config/plugins/extra.lua +++ b/lua/config/plugins/extra.lua @@ -108,6 +108,9 @@ return { { "gh", group = "hunk" }, { "S", group = "surround" }, }, + + { "x", group = "extra" }, + { "xS", group = "supercollider" }, }) end, }, @@ -122,4 +125,43 @@ return { { "-", "Oil", { desc = "Open parent directory" } }, }, }, + { + "scnvim", + -- NOTE: this plugin is broken when try to lazyload + lazy = false, + after = function(_) + local scnvim = require("scnvim") + local map = scnvim.map + local map_expr = scnvim.map_expr + + scnvim.setup({ + keymaps = { + [""] = { + map("editor.send_block", { "i", "n" }), + map("editor.send_selection", "x"), + }, + [""] = map("editor.send_line", { "i", "n" }), + [""] = map("signature.show", { "i", "n" }), + + [""] = map("sclang.hard_stop", { "i", "n", "x" }), + }, + }) + + vim.api.nvim_create_augroup("my.scnvim", { clear = true }) + vim.api.nvim_create_autocmd("InsertEnter", { + pattern = "*.scd", + group = "my.scnvim", + once = true, + callback = function() + -- Loading snippets to LuaSnip + require("luasnip").add_snippets("supercollider", require("scnvim/utils").get_snippets()) + end, + }) + end, + keys = { + { "xSs", "SCNvimStart", desc = "Start SuperCollider" }, + { "xSS", "SCNvimStop", desc = "Stop SuperCollider" }, + { "xSr", "SCNvimRecompile", desc = "Recompile SuperCollider sclang" }, + }, + }, } -- cgit v1.2.3-70-g09d2