Custom snippets and snakemake support
This commit is contained in:
parent
e138cc0188
commit
cecf9a7f3d
14
init.lua
14
init.lua
|
@ -670,6 +670,7 @@ require('lazy').setup({
|
||||||
'rafamadriz/friendly-snippets',
|
'rafamadriz/friendly-snippets',
|
||||||
config = function()
|
config = function()
|
||||||
require('luasnip.loaders.from_vscode').lazy_load()
|
require('luasnip.loaders.from_vscode').lazy_load()
|
||||||
|
require('luasnip.loaders.from_vscode').load { paths = { './my-snippets' } }
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -714,6 +715,7 @@ require('lazy').setup({
|
||||||
-- This will auto-import if your LSP supports it.
|
-- This will auto-import if your LSP supports it.
|
||||||
-- This will expand snippets if the LSP sent a snippet.
|
-- This will expand snippets if the LSP sent a snippet.
|
||||||
['<C-y>'] = cmp.mapping.confirm { select = true },
|
['<C-y>'] = cmp.mapping.confirm { select = true },
|
||||||
|
['<C-z>'] = cmp.mapping.confirm { select = true },
|
||||||
|
|
||||||
-- Manually trigger a completion from nvim-cmp.
|
-- Manually trigger a completion from nvim-cmp.
|
||||||
-- Generally you don't need this, because nvim-cmp will display
|
-- Generally you don't need this, because nvim-cmp will display
|
||||||
|
@ -733,11 +735,11 @@ require('lazy').setup({
|
||||||
luasnip.expand_or_jump()
|
luasnip.expand_or_jump()
|
||||||
end
|
end
|
||||||
end, { 'i', 's' }),
|
end, { 'i', 's' }),
|
||||||
['<C-h>'] = cmp.mapping(function()
|
-- ['<C-h>'] = cmp.mapping(function()
|
||||||
if luasnip.locally_jumpable(-1) then
|
-- if luasnip.locally_jumpable(-1) then
|
||||||
luasnip.jump(-1)
|
-- luasnip.jump(-1)
|
||||||
end
|
-- end
|
||||||
end, { 'i', 's' }),
|
-- end, { 'i', 's' }),
|
||||||
|
|
||||||
-- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see:
|
-- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see:
|
||||||
-- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps
|
-- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps
|
||||||
|
@ -809,7 +811,7 @@ require('lazy').setup({
|
||||||
'nvim-treesitter/nvim-treesitter',
|
'nvim-treesitter/nvim-treesitter',
|
||||||
build = ':TSUpdate',
|
build = ':TSUpdate',
|
||||||
opts = {
|
opts = {
|
||||||
ensure_installed = { 'bash', 'c', 'html', 'json', 'lua', 'luadoc', 'markdown', 'python', 'rust', 'toml', 'typst', 'vim', 'vimdoc', 'yaml' },
|
ensure_installed = { 'bash', 'c', 'html', 'json', 'lua', 'luadoc', 'markdown', 'python', 'rust', 'toml', 'typst', 'vim', 'vimdoc', 'yaml', 'snakemake' },
|
||||||
-- Autoinstall languages that are not installed
|
-- Autoinstall languages that are not installed
|
||||||
auto_install = true,
|
auto_install = true,
|
||||||
highlight = {
|
highlight = {
|
||||||
|
|
|
@ -29,12 +29,12 @@ vim.keymap.set('n', '<leader>m', ':make <CR>', { desc = '[M]ake' })
|
||||||
vim.keymap.set('n', '<leader>su', require('telescope').extensions.undo.undo, { desc = '[S]earch [U]ndo' })
|
vim.keymap.set('n', '<leader>su', require('telescope').extensions.undo.undo, { desc = '[S]earch [U]ndo' })
|
||||||
|
|
||||||
-- Compile markdown to html with pandoc
|
-- Compile markdown to html with pandoc
|
||||||
vim.keymap.set(
|
-- vim.keymap.set(
|
||||||
'n',
|
-- 'n',
|
||||||
'<C-H>',
|
-- '<C-H>',
|
||||||
":! pandoc '%:p' -o /tmp/'%:p:t'.html --template=easy_template.html --toc && /mnt/c/Program\\ Files/Mozilla\\ Firefox/ /tmp/'%:p:t'.html &<CR><CR>",
|
-- ":! pandoc '%:p' -o /tmp/'%:p:t'.html --template=easy_template.html --toc && /mnt/c/Program\\ Files/Mozilla\\ Firefox/ /tmp/'%:p:t'.html &<CR><CR>",
|
||||||
{ desc = 'Build [M]arkdown to HTML' }
|
-- { desc = 'Build [M]arkdown to HTML' }
|
||||||
)
|
-- )
|
||||||
|
|
||||||
-- Spectre
|
-- Spectre
|
||||||
vim.keymap.set('n', '<leader>S', '<cmd>lua require("spectre").toggle()<CR>', {
|
vim.keymap.set('n', '<leader>S', '<cmd>lua require("spectre").toggle()<CR>', {
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
"name": "my-snippets",
|
||||||
|
"engines": {
|
||||||
|
"vscode": "^1.11.0"
|
||||||
|
},
|
||||||
|
"contributes": {
|
||||||
|
"snippets": [
|
||||||
|
{
|
||||||
|
"language": "python",
|
||||||
|
"path": "./snippets/python.json"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"# type: ignore": {
|
||||||
|
"prefix": "ti",
|
||||||
|
"body": [
|
||||||
|
" # type: ignore"
|
||||||
|
],
|
||||||
|
"description": "Insert # type: ignore"
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,126 +0,0 @@
|
||||||
" Vim syntax file
|
|
||||||
" Language: Snakemake (extended from python.vim)
|
|
||||||
" Maintainer: Jay Hesselberth (jay.hesselberth@gmail.com)
|
|
||||||
" Last Change: 2020 Oct 6
|
|
||||||
"
|
|
||||||
" Usage
|
|
||||||
"
|
|
||||||
" copy to $HOME/.vim/syntax directory and
|
|
||||||
" copy to ftdetect/snakemake.vim to $HOME/.vim/ftdetect directory
|
|
||||||
"
|
|
||||||
" force coloring in a vim session with:
|
|
||||||
"
|
|
||||||
" :set syntax=snakemake
|
|
||||||
"
|
|
||||||
if exists("b:current_syntax")
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
" load settings from system python.vim (7.4)
|
|
||||||
source $VIMRUNTIME/syntax/python.vim
|
|
||||||
source $VIMRUNTIME/indent/python.vim
|
|
||||||
|
|
||||||
"
|
|
||||||
" Snakemake rules, as of version 5.8
|
|
||||||
"
|
|
||||||
"
|
|
||||||
" rule = "rule" (identifier | "") ":" ruleparams
|
|
||||||
" include = "include:" stringliteral
|
|
||||||
" workdir = "workdir:" stringliteral
|
|
||||||
" ni = NEWLINE INDENT
|
|
||||||
" ruleparams = [ni input] [ni output] [ni params] [ni message] [ni threads] [ni (run | shell)] NEWLINE snakemake
|
|
||||||
" input = "input" ":" parameter_list
|
|
||||||
" output = "output" ":" parameter_list
|
|
||||||
" params = "params" ":" parameter_list
|
|
||||||
" message = "message" ":" stringliteral
|
|
||||||
" threads = "threads" ":" integer
|
|
||||||
" resources = "resources" ":" parameter_list
|
|
||||||
" version = "version" ":" statement
|
|
||||||
" run = "run" ":" ni statement
|
|
||||||
" shell = "shell" ":" stringliteral
|
|
||||||
" singularity = "singularity" ":" stringliteral
|
|
||||||
" conda = "conda" ":" stringliteral
|
|
||||||
" shadow = "shadow" ":" stringliteral
|
|
||||||
" group = "group" ":" stringliteral
|
|
||||||
|
|
||||||
|
|
||||||
" general directives (e.g. input)
|
|
||||||
syn keyword pythonStatement
|
|
||||||
\ benchmark
|
|
||||||
\ conda
|
|
||||||
\ configfile
|
|
||||||
\ container
|
|
||||||
\ default_target
|
|
||||||
\ envmodules
|
|
||||||
\ group
|
|
||||||
\ include
|
|
||||||
\ input
|
|
||||||
\ localrule
|
|
||||||
\ localrules
|
|
||||||
\ log
|
|
||||||
\ message
|
|
||||||
\ notebook
|
|
||||||
\ onerror
|
|
||||||
\ onstart
|
|
||||||
\ onsuccess
|
|
||||||
\ output
|
|
||||||
\ params
|
|
||||||
\ priority
|
|
||||||
\ resources
|
|
||||||
\ ruleorder
|
|
||||||
\ run
|
|
||||||
\ scattergather
|
|
||||||
\ script
|
|
||||||
\ shadow
|
|
||||||
\ shell
|
|
||||||
\ singularity
|
|
||||||
\ snakefile
|
|
||||||
\ template_engine
|
|
||||||
\ threads
|
|
||||||
\ version
|
|
||||||
\ wildcard_constraints
|
|
||||||
\ wildcards
|
|
||||||
\ workdir
|
|
||||||
\ wrapper
|
|
||||||
|
|
||||||
" directives with a label (e.g. rule)
|
|
||||||
syn keyword pythonStatement
|
|
||||||
\ checkpoint
|
|
||||||
\ rule
|
|
||||||
\ subworkflow
|
|
||||||
\ nextgroup=pythonFunction skipwhite
|
|
||||||
|
|
||||||
" common snakemake objects
|
|
||||||
syn keyword pythonBuiltinObj
|
|
||||||
\ Paramspace
|
|
||||||
\ checkpoints
|
|
||||||
\ config
|
|
||||||
\ gather
|
|
||||||
\ rules
|
|
||||||
\ scatter
|
|
||||||
\ workflow
|
|
||||||
|
|
||||||
" snakemake functions
|
|
||||||
syn keyword pythonBuiltinFunc
|
|
||||||
\ ancient
|
|
||||||
\ directory
|
|
||||||
\ expand
|
|
||||||
\ multiext
|
|
||||||
\ pipe
|
|
||||||
\ protected
|
|
||||||
\ read_job_properties
|
|
||||||
\ service
|
|
||||||
\ temp
|
|
||||||
\ touch
|
|
||||||
\ unpack
|
|
||||||
|
|
||||||
" similar to special def and class treatment from python.vim, except
|
|
||||||
" parenthetical part of def and class
|
|
||||||
syn match pythonFunction
|
|
||||||
\ "\%(\%(rule\s\|subworkflow\s\|checkpoint\s\)\s*\)\@<=\h\w*" contained
|
|
||||||
|
|
||||||
syn sync match pythonSync grouphere NONE "^\s*\%(rule\|subworkflow\|checkpoint\)\s\+\h\w*\s*"
|
|
||||||
|
|
||||||
let b:current_syntax = "snakemake"
|
|
||||||
|
|
||||||
" vim:set sw=2 sts=2 ts=8 noet:
|
|
Loading…
Reference in New Issue