Neovim frontend for SuperCollider.
Cmd-Enter
in ScIDE)Document
support (e.g. thisProcess.nowExecutingPath
, .load
etc.)use { 'davidgranstrom/scnvim' }
Plug 'davidgranstrom/scnvim'
Run :checkhealth scnvim
to verify that the installation was successful.
scnvim
uses lua
for configuration. Below is an example that you can copy
and paste to your init.lua
.
If you are using init.vim
for configuration you will need to surround the
call to scnvim.setup
in a lua-heredoc
:
" file: init.vim
lua << EOF
require('scnvim').setup({})
EOF
local scnvim = require 'scnvim'
local map = scnvim.map
local map_expr = scnvim.map_expr
scnvim.setup({
keymaps = {
['<M-e>'] = map('editor.send_line', {'i', 'n'}),
['<C-e>'] = {
map('editor.send_block', {'i', 'n'}),
map('editor.send_selection', 'x'),
},
['<CR>'] = map('postwin.toggle'),
['<M-CR>'] = map('postwin.toggle', 'i'),
['<M-L>'] = map('postwin.clear', {'n', 'i'}),
['<C-k>'] = map('signature.show', {'n', 'i'}),
['<F12>'] = map('sclang.hard_stop', {'n', 'x', 'i'}),
['<leader>st'] = map('sclang.start'),
['<leader>sk'] = map('sclang.recompile'),
['<F1>'] = map_expr('s.boot'),
['<F2>'] = map_expr('s.meter'),
},
editor = {
highlight = {
color = 'IncSearch',
},
},
postwin = {
float = {
enabled = true,
},
},
})
Open a new file in nvim
with a .scd
or .sc
extension and type :SCNvimStart
to start SuperCollider.
Command | Description |
---|---|
SCNvimStart |
Start SuperCollider |
SCNvimStop |
Stop SuperCollider |
SCNvimRecompile |
Recompile SCClassLibrary |
SCNvimGenerateAssets |
Generate tags, syntax, snippets etc. |
SCNvimHelp <subject> |
Open help for <subject> (By default mapped to K ) |
SCNvimStatusLine |
Start to poll server status to be displayed in the status line |
Run :SCNvimGenerateAssets
after starting SuperCollider to generate syntax highlighting and tags.
The plugin should work "out of the box", but if you want even more fine-grained control please have a look at the configuration section in the wiki.
:help scnvim
for detailed documentation.The extension system provides additional functionalities and integrations. If you have made a scnvim extension, please open a PR and add it to this list!
nvim-qt
and nvim.exe
in Windows PowerShell)The path to sclang.exe
needs to be specified in the config:
local scnvim = require('scnvim')
scnvim.setup({
sclang = {
cmd = 'C:/Program Files/SuperCollider-3.12.2/sclang.exe'
},
})
Modify the sclang.cmd
to point to where SuperCollider is installed on your system.
Additionally, to be able to boot the server you will need to add the following to startup.scd
:
if (\SCNvim.asClass.notNil) {
Server.program = (Platform.resourceDir +/+ "scsynth.exe").quote;
}
scnvim - Neovim frontend for SuperCollider
Copyright © 2018 David Granström
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.