Live coding with tidal and sonic pi, snippets for diary, toggleterm

Live Coding:

- added plugin for sonic-pi (though commented out)
- added plugin for tidal

Snippets:

- added path luasnippets to loaderdefinitions
- added luasnippet for asciidoc (diaentry, diahead

Options:

- no longer show tabline

Plugins:

- toggleterm with a binding so <C-`>
This commit is contained in:
2024-10-28 13:24:14 +01:00
parent 93bb8bc68c
commit 294870a25b
4 changed files with 124 additions and 0 deletions

View File

@@ -79,5 +79,6 @@ cmp.setup({
{ name = 'path' }, -- For path completion
{ name = 'rpncalc' }, -- for RPN calculations
{ name = 'orgmode' }, -- for nvim-orgmode
{ name = 'sonicpi' }, -- for sonic-pi integration
})
})

View File

@@ -24,6 +24,7 @@ vim.opt.splitbelow = true -- open new vertical split bottom
vim.opt.splitright = true -- open new horizontal splits right
vim.opt.termguicolors = true -- enable 24-bit RGB color in the TUI
vim.opt.showmode = false -- we are experienced, wo don't need the "-- INSERT --" mode hint
vim.opt.showtabline = 0 -- never show top line with tabs, not used anyways
-- Searching
vim.opt.incsearch = true -- search as characters are entered

View File

@@ -33,6 +33,7 @@ require("lazy").setup({
version = "v2.*",
config = function()
require("luasnip.loaders.from_snipmate").lazy_load()
require("luasnip.loaders.from_lua").lazy_load()
end,
},
@@ -445,4 +446,58 @@ require("lazy").setup({
require('gitsigns').setup()
end,
},
-- -- Live Coding: sonic-pi music programming
-- {
-- 'magicmonty/sonicpi.nvim',
-- -- broken if used here, setup called further below
-- -- config = function()
-- -- require('sonicpi').setup()
-- -- end,
-- dependencies = {
-- 'hrsh7th/nvim-cmp',
-- 'kyazdani42/nvim-web-devicons'
-- },
-- },
-- easy term on a shortcut
{
"akinsho/toggleterm.nvim",
config = true,
keys = {
{
"<C-`>",
":ToggleTerm<CR>",
desc = "Toggle terminal",
},
{
"<C-`>",
"<C-\\><C-n>:ToggleTerm<CR>",
mode = 't',
desc = "Toggle terminal",
},
},
},
-- Live Coding: tidal cycles support
{
'tidalcycles/vim-tidal',
config = function()
vim.g.tidal_sc_enable = 1
end,
},
})
-- require('sonicpi').setup({
-- server_dir = '/opt/sonic-pi/app/server',
-- mappings = {
-- { 'n', '<leader>d', ':SonicPiStartDaemon<CR>', { desc = 'Sonic Pi: start daemon' } },
-- { 'n', '<leader>s', require('sonicpi.remote').stop, { desc = 'Sonic Pi: stop' } },
-- { 'i', '<M-s>', require('sonicpi.remote').stop, { desc = 'Sonic Pi: stop' } },
-- { 'n', '<leader>r', require('sonicpi.remote').run_current_buffer, { desc = 'Sonic Pi: run' } },
-- { 'i', '<M-r>', require('sonicpi.remote').run_current_buffer, { desc = 'Sonic Pi: run' } },
-- { 'n', '<leader>R', ':SonicPiSendBuffer<CR>', { desc = 'Sonic Pi: send buffer' } },
-- { 'i', '<M-R>', ':SonicPiSendBuffer<CR>', { desc = 'Sonic Pi: send buffer' } },
-- },
-- single_file = true,
-- })

67
luasnippets/asciidoc.lua Normal file
View File

@@ -0,0 +1,67 @@
-- these are already defined elsewhere, but LSP does not recognize that
-- doc says luasnip.config.snip_env
local ls = require("luasnip")
local s = ls.snippet
local sn = ls.snippet_node
local isn = ls.indent_snippet_node
local t = ls.text_node
local i = ls.insert_node
local f = ls.function_node
local c = ls.choice_node
local d = ls.dynamic_node
local r = ls.restore_node
local events = require("luasnip.util.events")
local ai = require("luasnip.nodes.absolute_indexer")
local extras = require("luasnip.extras")
local l = extras.lambda
local rep = extras.rep
local p = extras.partial
local m = extras.match
local n = extras.nonempty
local dl = extras.dynamic_lambda
local fmt = require("luasnip.extras.fmt").fmt
local fmta = require("luasnip.extras.fmt").fmta
local conds = require("luasnip.extras.expand_conditions")
local postfix = require("luasnip.extras.postfix").postfix
local types = require("luasnip.util.types")
local parse = require("luasnip.util.parser").parse_snippet
local ms = ls.multi_snippet
local k = require("luasnip.nodes.key_indexer").new_key
-- ensure current locale is used to format dates
local curlang = os.getenv("LANG")
os.setlocale(curlang)
return {
-- = Oktober 2024
-- :toc:
-- :numbered!:
--
-- <cursor>
s("diahead",
{
t "= ",
f(function() return os.date("%0B %Y") end),
t({ "", "", }),
t({ ":toc:", "" }),
t({ ":numbered!:", "" }),
t({ "", "", }),
}
),
-- == 7. Oktober, 11:14, Montag
--
-- <cursor>
s("diaentry",
{
t "== ",
f(function() return os.date("%e. %0B, %H:%M, %A") end),
t({ "", "", }),
t({ "", "", }),
}
),
}
--