commit 0b696075893a1e2829b6543e81473ca7c48fcc36 Author: Jan Hamal Dvořák Date: Thu May 23 08:33:22 2024 +0200 Initial import diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..98d519b --- /dev/null +++ b/.gitmodules @@ -0,0 +1,21 @@ +[submodule "bundle/fidget.nvim"] + path = bundle/fidget.nvim + url = https://github.com/j-hui/fidget.nvim.git +[submodule "bundle/fzf-lua"] + path = bundle/fzf-lua + url = https://github.com/ibhagwan/fzf-lua.git +[submodule "bundle/haskell-vim"] + path = bundle/haskell-vim + url = https://github.com/neovimhaskell/haskell-vim.git +[submodule "bundle/html5.vim"] + path = bundle/html5.vim + url = https://github.com/othree/html5.vim.git +[submodule "bundle/nvim-treesitter"] + path = bundle/nvim-treesitter + url = https://github.com/nvim-treesitter/nvim-treesitter.git +[submodule "bundle/nvim-web-devicons"] + path = bundle/nvim-web-devicons + url = https://github.com/nvim-tree/nvim-web-devicons.git +[submodule "bundle/vim-table-mode"] + path = bundle/vim-table-mode + url = https://github.com/dhruvasagar/vim-table-mode.git diff --git a/after/syntax/c.vim b/after/syntax/c.vim new file mode 100644 index 0000000..ff4aa0e --- /dev/null +++ b/after/syntax/c.vim @@ -0,0 +1 @@ +syn keyword cOperator assert diff --git a/autoload/pathogen.vim b/autoload/pathogen.vim new file mode 100644 index 0000000..f520fec --- /dev/null +++ b/autoload/pathogen.vim @@ -0,0 +1,347 @@ +" pathogen.vim - path option manipulation +" Maintainer: Tim Pope +" Version: 2.3 + +" Install in ~/.vim/autoload (or ~\vimfiles\autoload). +" +" For management of individually installed plugins in ~/.vim/bundle (or +" ~\vimfiles\bundle), adding `execute pathogen#infect()` to the top of your +" .vimrc is the only other setup necessary. +" +" The API is documented inline below. + +if exists("g:loaded_pathogen") || &cp + finish +endif +let g:loaded_pathogen = 1 + +" Point of entry for basic default usage. Give a relative path to invoke +" pathogen#interpose() (defaults to "bundle/{}"), or an absolute path to invoke +" pathogen#surround(). Curly braces are expanded with pathogen#expand(): +" "bundle/{}" finds all subdirectories inside "bundle" inside all directories +" in the runtime path. +function! pathogen#infect(...) abort + for path in a:0 ? filter(reverse(copy(a:000)), 'type(v:val) == type("")') : ['bundle/{}'] + if path =~# '^\%({\=[$~\\/]\|{\=\w:[\\/]\).*[{}*]' + call pathogen#surround(path) + elseif path =~# '^\%([$~\\/]\|\w:[\\/]\)' + call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')') + call pathogen#surround(path . '/{}') + elseif path =~# '[{}*]' + call pathogen#interpose(path) + else + call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')') + call pathogen#interpose(path . '/{}') + endif + endfor + call pathogen#cycle_filetype() + if pathogen#is_disabled($MYVIMRC) + return 'finish' + endif + return '' +endfunction + +" Split a path into a list. +function! pathogen#split(path) abort + if type(a:path) == type([]) | return a:path | endif + if empty(a:path) | return [] | endif + let split = split(a:path,'\\\@]','\\&','') + endif +endfunction + +" Like findfile(), but hardcoded to use the runtimepath. +function! pathogen#runtime_findfile(file,count) abort "{{{1 + let rtp = pathogen#join(1,pathogen#split(&rtp)) + let file = findfile(a:file,rtp,a:count) + if file ==# '' + return '' + else + return fnamemodify(file,':p') + endif +endfunction + +" Section: Deprecated + +function! s:warn(msg) abort + echohl WarningMsg + echomsg a:msg + echohl NONE +endfunction + +" Prepend all subdirectories of path to the rtp, and append all 'after' +" directories in those subdirectories. Deprecated. +function! pathogen#runtime_prepend_subdirectories(path) abort + call s:warn('Change pathogen#runtime_prepend_subdirectories('.string(a:path).') to pathogen#infect('.string(a:path.'/{}').')') + return pathogen#surround(a:path . pathogen#slash() . '{}') +endfunction + +function! pathogen#incubate(...) abort + let name = a:0 ? a:1 : 'bundle/{}' + call s:warn('Change pathogen#incubate('.(a:0 ? string(a:1) : '').') to pathogen#infect('.string(name).')') + return pathogen#interpose(name) +endfunction + +" Deprecated alias for pathogen#interpose(). +function! pathogen#runtime_append_all_bundles(...) abort + if a:0 + call s:warn('Change pathogen#runtime_append_all_bundles('.string(a:1).') to pathogen#infect('.string(a:1.'/{}').')') + else + call s:warn('Change pathogen#runtime_append_all_bundles() to pathogen#infect()') + endif + return pathogen#interpose(a:0 ? a:1 . '/{}' : 'bundle/{}') +endfunction + +if exists(':Vedit') + finish +endif + +let s:vopen_warning = 0 + +function! s:find(count,cmd,file,lcd) + let rtp = pathogen#join(1,pathogen#split(&runtimepath)) + let file = pathogen#runtime_findfile(a:file,a:count) + if file ==# '' + return "echoerr 'E345: Can''t find file \"".a:file."\" in runtimepath'" + endif + if !s:vopen_warning + let s:vopen_warning = 1 + let warning = '|echohl WarningMsg|echo "Install scriptease.vim to continue using :V'.a:cmd.'"|echohl NONE' + else + let warning = '' + endif + if a:lcd + let path = file[0:-strlen(a:file)-2] + execute 'lcd `=path`' + return a:cmd.' '.pathogen#fnameescape(a:file) . warning + else + return a:cmd.' '.pathogen#fnameescape(file) . warning + endif +endfunction + +function! s:Findcomplete(A,L,P) + let sep = pathogen#slash() + let cheats = { + \'a': 'autoload', + \'d': 'doc', + \'f': 'ftplugin', + \'i': 'indent', + \'p': 'plugin', + \'s': 'syntax'} + if a:A =~# '^\w[\\/]' && has_key(cheats,a:A[0]) + let request = cheats[a:A[0]].a:A[1:-1] + else + let request = a:A + endif + let pattern = substitute(request,'/\|\'.sep,'*'.sep,'g').'*' + let found = {} + for path in pathogen#split(&runtimepath) + let path = expand(path, ':p') + let matches = split(glob(path.sep.pattern),"\n") + call map(matches,'isdirectory(v:val) ? v:val.sep : v:val') + call map(matches,'expand(v:val, ":p")[strlen(path)+1:-1]') + for match in matches + let found[match] = 1 + endfor + endfor + return sort(keys(found)) +endfunction + +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Ve :execute s:find(,'edit',,0) +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vedit :execute s:find(,'edit',,0) +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vopen :execute s:find(,'edit',,1) +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vsplit :execute s:find(,'split',,1) +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vvsplit :execute s:find(,'vsplit',,1) +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vtabedit :execute s:find(,'tabedit',,1) +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vpedit :execute s:find(,'pedit',,1) +command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vread :execute s:find(,'read',,1) + +" vim:set et sw=2: diff --git a/bundle/fidget.nvim b/bundle/fidget.nvim new file mode 160000 index 0000000..ef99df0 --- /dev/null +++ b/bundle/fidget.nvim @@ -0,0 +1 @@ +Subproject commit ef99df04a1c53a453602421bc0f756997edc8289 diff --git a/bundle/fzf-lua b/bundle/fzf-lua new file mode 160000 index 0000000..b442569 --- /dev/null +++ b/bundle/fzf-lua @@ -0,0 +1 @@ +Subproject commit b442569ab827f72e344236c598b02cb9dc754e9f diff --git a/bundle/haskell-vim b/bundle/haskell-vim new file mode 160000 index 0000000..f35d022 --- /dev/null +++ b/bundle/haskell-vim @@ -0,0 +1 @@ +Subproject commit f35d02204b4813d1dbe8b0e98cc39701a4b8e15e diff --git a/bundle/html5.vim b/bundle/html5.vim new file mode 160000 index 0000000..485f2cd --- /dev/null +++ b/bundle/html5.vim @@ -0,0 +1 @@ +Subproject commit 485f2cd62162c81e56d8604b4c630f0b5ef69d1f diff --git a/bundle/nvim-treesitter b/bundle/nvim-treesitter new file mode 160000 index 0000000..30de5e7 --- /dev/null +++ b/bundle/nvim-treesitter @@ -0,0 +1 @@ +Subproject commit 30de5e7e9486fb1b1b8c2a1e71052b13f94f1cb0 diff --git a/bundle/nvim-web-devicons b/bundle/nvim-web-devicons new file mode 160000 index 0000000..e37bb1f --- /dev/null +++ b/bundle/nvim-web-devicons @@ -0,0 +1 @@ +Subproject commit e37bb1feee9e7320c76050a55443fa843b4b6f83 diff --git a/bundle/vim-table-mode b/bundle/vim-table-mode new file mode 160000 index 0000000..e4365bd --- /dev/null +++ b/bundle/vim-table-mode @@ -0,0 +1 @@ +Subproject commit e4365bde024f73e205eefa2fb78e3029ddb92ea9 diff --git a/init.vim b/init.vim new file mode 100644 index 0000000..e6f579a --- /dev/null +++ b/init.vim @@ -0,0 +1,95 @@ +source /etc/vimrc + +execute pathogen#infect() + +autocmd BufReadPost * + \ if line("'\"") > 0 && line ("'\"") <= line("$") | + \ exe "normal! g'\"" | + \ endif + + +set modeline +set nowrap +set sidescroll=1 +set scrolloff=3 +set nobackup +set mouse= +set completeopt-=preview +set nofoldenable +set spellcapcheck=0 + +colorscheme vim + +set smartcase +"set smarttab + +set nohlsearch + +highlight ExtraWhitespace ctermbg=darkgreen guibg=darkgreen +match ExtraWhitespace /\s\+$\| \+\ze\t/ + +au FileType sql setlocal ts=2 sw=2 et +au FileType python setlocal ts=4 sw=4 et +au FileType typescript setlocal ts=2 sw=2 et +au FileType lua setlocal ts=2 sw=2 et +au FileType racket setlocal sw=2 ts=2 et +au FileType yaml setlocal sw=2 ts=2 et +au FileType markdown setlocal sw=2 ts=2 et +au FileType pandoc setlocal sw=2 ts=2 et +au FileType asciidoc setlocal sw=2 ts=2 et +au FileType llvm setlocal sw=2 ts=2 et +au FileType xml setlocal sw=2 ts=2 et +au FileType html setlocal sw=2 ts=2 et +au FileType htmldjango setlocal sw=2 ts=2 et +au FileType cabal setlocal sw=2 ts=2 et +au FileType javascript setlocal sw=2 ts=2 et +au FileType rst setlocal sw=3 ts=3 et +au FileType riot setlocal sw=2 ts=2 et +au FileType elm setlocal sw=4 ts=4 et +au FileType asciidoctor setlocal wrap lbr iskeyword+=- +au FileType cmake setlocal sw=2 ts=2 et +au FileType scss setlocal sw=2 ts=2 et + +au BufRead,BufNewFile */templates/*.html set filetype=htmldjango + +autocmd BufNewFile *.h 0r ~/.vim/template/h +autocmd BufNewFile *.re2c 0r ~/.vim/template/re2c +autocmd BufNewFile *.hy 0r ~/.vim/template/hy +autocmd BufNewFile *.rkt 0r ~/.vim/template/racket +autocmd BufNewFile *.scrbl 0r ~/.vim/template/scrbl +autocmd BufNewFile *.ss 0r ~/.vim/template/scheme +autocmd BufNewFile *.html 0r ~/.vim/template/html5 +autocmd BufNewFile *.xhtml 0r ~/.vim/template/xhtml +autocmd BufNewFile *.mk 0r ~/.vim/template/make +autocmd BufNewFile *.hs 0r ~/.vim/template/hs +autocmd BufNewFile *.adoc 0r ~/.vim/template/adoc +autocmd BufNewFile *.md 0r ~/.vim/template/md +autocmd BufNewFile Makefile 0r ~/.vim/template/make +autocmd BufNewFile *.wiki 0r !~/.config/nvim/bin/vimwiki-new-entry.py '%' + +autocmd BufNewFile,BufRead *.pio setfiletype pioasm + +highlight Pmenu ctermbg=235 guibg=black +highlight Pmenu ctermfg=white guifg=white +highlight PmenuSel ctermbg=235 guibg=black +highlight PmenuSel ctermfg=yellow guifg=yellow + +" For Pandoc +let g:pandoc#spell#enabled=0 +let g:pandoc#modules#disabled=["bibliographies"] +let g:jsx_ext_required = 0 + +" How many files / lines to remember. +set viminfo='20,<1000,s100 + +if has('nvim') + lua require("init") + lua require("config.tab") + lua require("config.black") + lua require("config.isort") + lua require("config.prettier") + lua require("config.lsp") + lua require("config.c") +endif + +" EOF diff --git a/lua/config/black.lua b/lua/config/black.lua new file mode 100644 index 0000000..cae5134 --- /dev/null +++ b/lua/config/black.lua @@ -0,0 +1,4 @@ +vim.api.nvim_create_autocmd( { "BufWritePost" }, { + pattern = { "*.py", "*.pyi" }, + command = [[ :silent! !/usr/bin/black % ]], +}) diff --git a/lua/config/c.lua b/lua/config/c.lua new file mode 100644 index 0000000..36f6ec8 --- /dev/null +++ b/lua/config/c.lua @@ -0,0 +1,4 @@ +vim.api.nvim_create_autocmd( { "BufWritePost" }, { + pattern = { "*.c", "*.h" }, + command = [[ :silent! !/usr/bin/clang-format -i % ]], +}) diff --git a/lua/config/isort.lua b/lua/config/isort.lua new file mode 100644 index 0000000..862e260 --- /dev/null +++ b/lua/config/isort.lua @@ -0,0 +1,4 @@ +vim.api.nvim_create_autocmd( { "BufWritePost" }, { + pattern = { "*.py", "*.pyi" }, + command = [[ :silent! !/usr/bin/isort -q % ]], +}) diff --git a/lua/config/lsp/clangd.lua b/lua/config/lsp/clangd.lua new file mode 100644 index 0000000..ca7f481 --- /dev/null +++ b/lua/config/lsp/clangd.lua @@ -0,0 +1,28 @@ +local bin_name = "clangd" +local cmd = { + bin_name, + "--background-index", + "--suggest-missing-includes", + "--enable-config" +} + +local config = vim.fs.find(".clangd", { + upward = true, + stop = vim.loop.os_homedir(), + path = vim.fs.dirname(vim.api.nvim_buf_get_name(0)), +}) + +if next(config) then + vim.api.nvim_create_autocmd("FileType", { + pattern = "c,cpp", + callback = function() + vim.lsp.start({ + name = "clangd", + cmd = cmd, + root_dir = config[1], + settings = { + }, + }) + end, + }) +end diff --git a/lua/config/lsp/init.lua b/lua/config/lsp/init.lua new file mode 100644 index 0000000..21e3ae8 --- /dev/null +++ b/lua/config/lsp/init.lua @@ -0,0 +1,158 @@ +if vim.fn.has('nvim-0.5.1') == 1 then + require('vim.lsp.log').set_format_func(vim.inspect) +end + +vim.lsp.set_log_level("off") + +require("config.lsp.pyright") +-- require("config.lsp.pylsp") +-- require("config.lsp.typescript") +require("config.lsp.clangd") +require("config.lsp.vls") + +local api = vim.api +local keymap = vim.keymap.set + +local function keymappings(_, bufnr) + local opts = { noremap = true, silent = true } + + keymap("n", "K", vim.lsp.buf.hover, { buffer = bufnr }) + keymap("n", "[d", "lua vim.diagnostic.goto_prev()", opts) + keymap("n", "]d", "lua vim.diagnostic.goto_next()", opts) + keymap("n", "[e", "lua vim.diagnostic.goto_prev({severity = vim.diagnostic.severity.ERROR})", opts) + keymap("n", "]e", "lua vim.diagnostic.goto_next({severity = vim.diagnostic.severity.ERROR})", opts) + + keymap("n", "gd", "lua vim.lsp.buf.definition()", opts) + keymap("n", "gD", "lua vim.lsp.buf.declaration()", opts) + keymap("n", "gh", "lua vim.lsp.buf.signature_help()", opts) + keymap("n", "gI", "lua vim.lsp.buf.implementation()", opts) + keymap("n", "gb", "lua vim.lsp.buf.type_definition()", opts) + + keymap("n", "gl", "lua vim.diagnostic.reset()", opts) + + -- api.nvim_set_keymap("i", "", [[pumvisible() ? "\" : "\"]], { noremap = true, expr = true }) + -- api.nvim_set_keymap("i", "", [[pumvisible() ? "\" : "\"]], { noremap = true, expr = true }) +end + +local function highlighting(client, bufnr) + if client.server_capabilities.documentHighlightProvider then + local lsp_highlight_grp = api.nvim_create_augroup("LspDocumentHighlight", { clear = true }) + api.nvim_create_autocmd("CursorHold", { + callback = function() + vim.schedule(vim.lsp.buf.document_highlight) + end, + group = lsp_highlight_grp, + buffer = bufnr, + }) + api.nvim_create_autocmd("CursorMoved", { + callback = function() + vim.schedule(vim.lsp.buf.clear_references) + end, + group = lsp_highlight_grp, + buffer = bufnr, + }) + end +end + +local function lsp_handlers() + local diagnostics = { + Error = "E:", + Warning = "W:", + Hint = "", + Information = "I:", + Question = "Q:", + } + local signs = { + { name = "DiagnosticSignError", text = diagnostics.Error }, + { name = "DiagnosticSignWarn", text = diagnostics.Warning }, + { name = "DiagnosticSignHint", text = diagnostics.Hint }, + { name = "DiagnosticSignInfo", text = diagnostics.Info }, + } + for _, sign in ipairs(signs) do + vim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = sign.name }) + end + + -- LSP handlers configuration + local config = { + float = { + focusable = true, + style = "minimal", + border = "rounded", + }, + + diagnostic = { + virtual_text = { severity = vim.diagnostic.severity.ERROR }, + signs = { + active = signs, + }, + underline = true, + update_in_insert = false, + severity_sort = true, + float = { + focusable = true, + style = "minimal", + border = "rounded", + source = "always", + header = "", + prefix = "", + }, + }, + } + + vim.diagnostic.config(config.diagnostic) + vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, config.float) + vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, config.float) +end + +local function formatting(client, bufnr) + if client.server_capabilities.documentFormattingProvider then + local function format() + local view = vim.fn.winsaveview() + vim.lsp.buf.format({ + async = true, + filter = function(attached_client) + return attached_client.name ~= "" + end, + }) + vim.fn.winrestview(view) + end + + local lsp_format_grp = api.nvim_create_augroup("LspFormat", { clear = true }) + api.nvim_create_autocmd("BufWritePre", { + callback = function() + vim.schedule(format) + end, + group = lsp_format_grp, + buffer = bufnr, + }) + end +end + +local function on_attach(client, bufnr) + if client.server_capabilities.completionProvider then + vim.bo[bufnr].omnifunc = "v:lua.vim.lsp.omnifunc" + vim.bo[bufnr].completefunc = "v:lua.vim.lsp.omnifunc" + end + + if client.server_capabilities.definitionProvider then + vim.bo[bufnr].tagfunc = "v:lua.vim.lsp.tagfunc" + end + + if client.server_capabilities.documentFormattingProvider then + vim.bo[bufnr].formatexpr = "v:lua.vim.lsp.formatexpr()" + end + + keymappings(client, bufnr) + --highlighting(client, bufnr) + --formatting(client, bufnr) +end + +lsp_handlers() + +vim.api.nvim_create_autocmd("LspAttach", { + callback = function(args) + local bufnr = args.buf + local client = vim.lsp.get_client_by_id(args.data.client_id) + on_attach(client, bufnr) + end, +}) diff --git a/lua/config/lsp/pylsp.lua b/lua/config/lsp/pylsp.lua new file mode 100644 index 0000000..ade7a16 --- /dev/null +++ b/lua/config/lsp/pylsp.lua @@ -0,0 +1,43 @@ +local root_files = { + "pyproject.toml", + "setup.py", + "setup.cfg", + "requirements.txt", + "Pipfile", + "pyrightconfig.json", + ".git", +} + +local root_dir = vim.fs.dirname(vim.fs.find(root_files, { upward = true })[1]) + +vim.api.nvim_create_autocmd("FileType", { + pattern = "python", + callback = function() + vim.lsp.start({ + name = "pylsp", + cmd = { "pylsp", "--log-config", "/tmp/logging.json", }, + root_dir = root_dir, + settings = { + pylsp = { + plugins = { + pyflakes = { + enabled = false, + }, + pycodestyle = { + enabled = false, + }, + mccabe = { + enabled = false, + }, + flake8 = { + enabled = true, + }, + pylsp_mypy = { + enabled = true, + }, + }, + }, + }, + }) + end, +}) diff --git a/lua/config/lsp/pyright.lua b/lua/config/lsp/pyright.lua new file mode 100644 index 0000000..7df829a --- /dev/null +++ b/lua/config/lsp/pyright.lua @@ -0,0 +1,36 @@ +local bin_name = "pyright-langserver" +local cmd = { bin_name, "--stdio", } + +if vim.fn.has("win32") == 1 then + cmd = { "cmd.exe", "/C", bin_name, "--stdio" } +end + +local root_files = { + "pyproject.toml", + "setup.py", + "setup.cfg", + "requirements.txt", + "Pipfile", + "pyrightconfig.json", + ".git", +} + +vim.api.nvim_create_autocmd("FileType", { + pattern = "python", + callback = function() + vim.lsp.start({ + name = "pyright", + cmd = cmd, + root_dir = vim.fs.dirname(vim.fs.find(root_files, { upward = true })[1]), + settings = { + python = { + analysis = { + autoSearchPaths = true, + useLibraryCodeForTypes = true, + diagnosticMode = "workspace", + }, + }, + }, + }) + end, +}) diff --git a/lua/config/lsp/typescript.lua b/lua/config/lsp/typescript.lua new file mode 100644 index 0000000..cbd65a2 --- /dev/null +++ b/lua/config/lsp/typescript.lua @@ -0,0 +1,27 @@ +local bin_name = "typescript-language-server" +local cmd = { bin_name, "--stdio" } + +local root_files = { + "package.json", + ".git", +} + +vim.api.nvim_create_autocmd("FileType", { + pattern = "typescript,javascript,javascriptreact,typescriptreact", + callback = function() + vim.lsp.start({ + name = "typescript-language-server", + cmd = cmd, + root_dir = vim.fs.dirname(vim.fs.find(root_files, { upward = true })[1]), + settings = { + init_options = { + completionDisableFilterText = true, + hostInfo = 'neovim', + preferences = { + includeCompletionsForModuleExports = false + }, + }, + }, + }) + end, +}) diff --git a/lua/config/lsp/vls.lua b/lua/config/lsp/vls.lua new file mode 100644 index 0000000..dbf02b4 --- /dev/null +++ b/lua/config/lsp/vls.lua @@ -0,0 +1,41 @@ +local root_files = { + "package.json", + ".git", +} + +local root_dir = vim.fs.dirname(vim.fs.find(root_files, { upward = true })[1]) + +vim.api.nvim_create_autocmd("FileType", { + pattern = "typescript,javascript,javascriptreact,typescriptreact,vue", + callback = function() +-- vim.lsp.start({ +-- name = "typescript-language-server", +-- cmd = { "typescript-language-server", "--stdio" }, +-- root_dir = root_dir, +-- settings = { +-- init_options = { +-- completionDisableFilterText = true, +-- plugins = { +-- name = "@vue/typescript-plugin", +-- location = "/home/mordae/.config/yarn/global/node_modules/@vue/language-server", +-- languages = { "vue" } +-- }, +-- }, +-- }, +-- }) + + vim.lsp.start({ + name = "volar", + cmd = { "vue-language-server", "--stdio" }, + root_dir = root_dir, + init_options = { + typescript = { + tsdk = "/home/mordae/.config/yarn/global/node_modules/typescript/lib", + }, + vue = { + hybridMode = false, + }, + }, + }) + end, +}) diff --git a/lua/config/prettier.lua b/lua/config/prettier.lua new file mode 100644 index 0000000..d84feb2 --- /dev/null +++ b/lua/config/prettier.lua @@ -0,0 +1,4 @@ +vim.api.nvim_create_autocmd( { "BufWritePost" }, { + pattern = { "*.vue", "*.js", "*.ts" }, + command = [[ :silent! !/usr/bin/env prettier -w % ]], +}) diff --git a/lua/config/tab.lua b/lua/config/tab.lua new file mode 100644 index 0000000..3d1cb16 --- /dev/null +++ b/lua/config/tab.lua @@ -0,0 +1,14 @@ +local function check_back_space() + local col = vim.fn.col('.') - 1 + return col <= 0 or vim.fn.getline('.'):sub(col, col):match('%s') +end + +function tab_complete() + if check_back_space() then + return vim.api.nvim_replace_termcodes('', true, false, true) + end + return vim.api.nvim_replace_termcodes('', true, false, true) +end + +vim.api.nvim_set_keymap('i', '', 'v:lua.tab_complete()', { expr = true, noremap = true }) +vim.api.nvim_set_keymap('i', '', '', { noremap = true }) diff --git a/lua/init.lua b/lua/init.lua new file mode 100644 index 0000000..a147237 --- /dev/null +++ b/lua/init.lua @@ -0,0 +1,29 @@ +-- Work around https://github.com/neovim/neovim/issues/21856 +vim.api.nvim_create_autocmd({ "VimLeave" }, { + callback = function() + vim.fn.jobstart('/bin/true', {detach=true}) + end, +}) + +require("fidget").setup { + text = { + spinner = "dots", + }, +} + +require("fzf-lua").setup({}) + +vim.keymap.set('n', '', 'lua require("fzf-lua").files()', { silent = true }) +vim.keymap.set('n', '', 'lua require("fzf-lua").git_files()', { silent = true }) +vim.keymap.set('n', '', 'lua require("fzf-lua").live_grep()', { silent = true }) +vim.keymap.set('n', '', 'lua require("fzf-lua").buffers()', { silent = true }) + +require('nvim-treesitter.configs').setup { + highlight = { + enable = true, + additional_vim_regex_highlighting = false, + }, + indent = { + enable = true, + } +} diff --git a/spell/cs.utf-8.add b/spell/cs.utf-8.add new file mode 100644 index 0000000..7754ab2 --- /dev/null +++ b/spell/cs.utf-8.add @@ -0,0 +1,1400 @@ +virtualizačního +blade +serverovně +NTK +zónování +Oracle +přezónování +serverovny +VLAN +RADIUS +LDAP +ICT +Dohledový +Eduroam +OpenLDAP +DHCP +severo +východo +virtualizační +dohledový +knowledge +issue +tracking +dohledovém +CESNET +Ballingova +Ballingově +JZ +rackovna +rackovny +rackovně +Serverovna +UPS +CESNETu +switch +Gb +Fortigate +IPS +Sviňárny +Samoexpy +PJ +Expy +XLR +DRM +PM3 +PM2 +PM1 +PM4 +RS232 +HDMI +XGA +WUXGA +VGA +ms +cat6a +plug +jack +g +RU +submixy +kasle +kaslících +kaslích +plugy +jacku +kaslí +8P8C +1080p +h264 +kodeku +1900x1200 +Ω +mixážní +FullHD +Blu-Ray +fps +Kodeky +Main +High +Mbps +bitrate +CBR +patch +vyjímkou +zapřičiní +x +x1 +AVB +USB +DMX +slaboproud +silnoproud +silnoproudu +DGS-2 +RG-213/U +IEC +slaboproudu +kastle +kastlí +kastlích +pdf +ntk +ods +png +rack +R&D +× +lux +m^2^ +mixážním +e-shopu +RS-232 +DGS-1/2 +DGS-1 +mikrofonní +ghúlové +ELI +Beamlines +laserů +EN +nanotechnického +nanotechnologického +µm +m^3^ +VZT +BOZP +fabiónů +TODO +HEPA +H13 +H14 +BusinessCom +č. +s.r.o. +IČ +r.č. +RČ +DKAN +CKAN +API +Red +Hat +Enterprise +CentOS +OpenData +virtualizačních +datacentry +mailto +info@singularita.net +ondrej.koch@singularita.net +jan.dvorak@singularita.net +Paláskova +MHMP +Lokalizátor +CSV +GPC +Converter +Holkem +Profant +a. +b. +c. +pt +make-upem +vousenku +protiprašná +překročné +překročnou +protiprašnou +LH +EH +IPA +NeČP +PAA +isopropyl +Demi-voda +Protiprašné +protiprašné +bezúletovou +Portal +Open +replikačních +MFZ +Selfchecky +Vracečka +RFID +NTP +Aleph +iFIS +Elanor +IDR +Repozitář +NUŠL +ICM +AuditPro +Kramerius +Abbyy +Redmine +RAEIZ +WSUS +Deployment +Wifinátor +SSO +Shibboleth +Jabber +Fast +SCCM +Wiki +B +ERM +Coral +Mailinátor +Kabelátor +Moodle +Puppet +PSH +VPN +Gatetracker +Ballingátor +Protector +MSSQL +IDM +Deduplikační +Dataflex +VPK +SFX +EZProxy +LAG +Z39.50 +Vufind +Helpdesk +Zoner Photo Studio +ASPI +Adobe Flash +Analyzery +PostgreSQL +NKOD +seniorních +Grafton Recruitment +IT +seniorního +LSC +Zabbix +RedHat +KVM +datasetů +datasety +24x7 +dovývoje +Pythonu +opensource +open +source +datasetu +resource +IS +Workflow +Services +PRINCE2 +CES +Office +DOCX +XLSX +SpIS +NOTE +ditaa +mordae@mordae.eu +cGRE +cPNK +cYEL +cBLU +jan.dvorak@singularita.net +PgSQL +SpISem +SpISu +vim +spell +spelllang +cs +eIDAS +SAML +eID +eSignature +ETSI +European +Telecommunications +Standards +PAdES +CAdES +XAdES +ASiC +Advanced +Electronic +Signatures +XMLDsig +W3 +W3C +Associated +Signature +Containers +Message +Cryptographic +eGovernmentu +smart +hwcrypto.js +Mac +připodepisovat +HSM +Security +ASN.1 +CMS +DSS +připodepisuje +připodepisují +Připodepisování +EnterpriseDB +DMS +Alfresco +dovývoji +MČ +Special +Award +JOSE +JSONu +HTTPS +Kolátora +nacenění +vs. +helpdesku +:note-caption: +:lang: +:icons: +:numbered: +SIM +WARNING +:warning-caption: +:align: +ESI +and +Infrastructure +připodepsáním +eduroam +WiFi +BitTorrent +Echelon +Kolaborátor +jan.dvorak@techlib.cz +Professional +dohledového +RHEL5 +Xenu +Upgrade +upgrade +Adminátor +LDAPu +wiki +wiki +Zen +Novell +L2 +L3 +PoE +0GbE +GbE +mezizónový +Brocade +D2D +deduplikaci +3Com +BladeSystem +c7000 +Enclosure +G3 +G1 +Gen9 +G9 +kioskovém +SafeQ +YSoft +PINem +NUC +Indoktrinátor +R2 +RHEL7 +OwnCloud +ownCloud +Kerberos +stanicového +WNSP +vracečka +selfchecku +vracečky +FreeRADIUS +ISC +KEA +PowerDNS +Polytematický +hypervizor +LVM +hypervizorů +hypervizoru +dohledovým +VMware +RHEL6 +hypervizorem +OpenVPN +MTA +Gwava +Groupwise +SLES +ActiveSync +Trapeze +Python +Racket +JSON +0MQ +NDA +Wincor-Nixdorf +Derpy +JavaScript +Ejabberd +indoktrinator +telescreen +plantuml +startuml +enduml +-up-> +-right-> +-left-> +-down-> +align +package +title +node +-d-> +-r-> +-l-> +left +right +direction +m3u +txt +M3U +M3U8 +m3u8 +playlist +playlistu +Expo +playlistem +deactivate +activate +h +state +as +ObecneInfo +Partneri +lístečkovým +Indoktrinátoru +CEC +RHEL +Wake +inotify +playlisty +CIFS +playlistů +ffmpeg +if +then +else +elseif +endif +kill +end +fork +again +Telescreeny +Indoktrinátorem +-l- +-r- +-d- +database +partition +:toc: +:toc-title: +playlistových +%d +playlistech +IdM +Amptrac +XP +Node.js +React.js +BDR +Apache +LDAPový +iFISu +prioritizovat +workflow +MFČR +Sitronics TS +Ajťáci +ÚMČ +Informatici +informatici +Hölzelové +Toť +Ginis +Simpro +Desktopová +RŽP +OŽV +JRF +EZP +E-spis +WARN +MPO +žurnální +hlášenky +e-spisem +podspisy +iFIS +iFIS +iFIS +ERP +BBM +Global +Edition +Tomcat +repozitář +Invenio +frontend +č. +MediaWiki +CzechPoint +KAAS +ÚZSVM +propadnuté +MMR +MD +SÚ +RÚIAN +ISÚI +ČÚZK +MISYS +IPR +E-spisu +ArcGIS +SŽDC +DPP +Einhornová +MPSV +OSPODu +iDES +anonymizované +anonymizaci +PSSZ +FÚ +Czech +WYSE +OSPOD +Tendermarket +aipSafe +AiP +SAFE +iDES +SaaS +MZe +NEN +anonymizovaných +podúkoly +CEVH +Ginisu +spreadsheetů +iDES +copycentra +adoc +A4 +dodejek +dodejky +dodejku +E-Spis +Ganttovo +Markdown +helpdesků +Ganttovy +EHP +OFI +ÚIA +kybernetizovat +kybernetizace +kybernetizací +helpdesk +helpdeskem +repozitářem +repozitáře +velkoformátový +A0 +A3 +sectnumlevels +toclevels +cols +options +header +státoobčanskou +CDBP +JIS +UQEO +CarPatron +ISPOP +OPČ +newsletteru +Access +midPoint +Kolátor +free +cloudu +velkoformátového +Discovery +NETCONF +upgradem +discovery +CZK +upgradu +cloud +actor +.l.> +class +left to right direction +TypProjektu +TypDokumentu +id +rectangle +skinparam +true +monochrome +ff99 +note +of +dddddd +ffff99 +ff9999 +bottom +forall +d +\n +padding +Haskell +Haskellu +YAML +CBOR +link +footer +autowidth +:table-caption: +yaml +jsonb +:figure-caption: +figure-caption +counter +example +example-caption +float +podmoduly +Nilfisku +Nilfisk +Advance +Group +Dell +Hyper-V +IPv4 +Prague +VoIP +QNAP +Banana +ERMS +CzechELib +eMVS +SUSHI +ebooky +EIZ +component +FDW +VZ +Active Directory +SLA +schvalovatel +xls +csv +Excel +Word +SW +ESXi +triggers +materialized views +refreshed +eagerly +procurement +budget +TenderMarket +{y} +{n} +footnoteref +metadatový +skenů +Státoobčanské +Řihák +:tip-caption: +Bubenská +metadatového +A2 +A6 +gramáží +gramáž +gramáži +footnote +státoobčanská +státoobčanské +Gordic +Státoobčanský +digital-born +xml +tagu +Metadatové +metadatových +JPEG2000 +A1 +DPI +OCR +Wikipedii +Balvínová +quote +repozitáři +skenu +skeny +metadatové +metadatovému +UUID +velkoformátových +repozitářů +TIFF +JPG2000 +TB +skenem +Panasonic +DesignJet +ProLiant +StoreVirtual +Gen8 +přísl. +rychloskenování +člověkodní +člověkodne +velkoformátovém +člověkoden +člověkodnů +zam. +Sken. +Troja +SWOT +METS +Dublin Core +MODS +ESSS +sken +SOAP +zejm. +ust. +ZZVZ +PPF +\newline +kreditovou +Kreditová +backendu +wikipedia +WBS +pygments +package +package +RESTové +MARC +:inf: +{inf} +max +URI +.r.> +m:n +MiB +{yes} +KiB +CSS +WMS +zarackování +Slouková +Github +techlib +verzováním +SPS +GDPR +hopperů +hopperům +cestného +sortéru +helpdeskovou +EET +HW +evid. +Ingenico +návinu +prezentér +Sortování +AntiPin +cestný +sortér +neaktivity +Thomayera +buzzwordů +maintenance +kartodiagramy +GeoJSON +OpenLayers +FreeIPA +Hamal +jan.hamal.dvorak@singularita.net +highlighter +dn +optIn +outOut +recipientGroup +optOut +senderGroup +bigint +enum +timestamp +jana.sloukova@singularita.net +Hamalovi +chipsy +Kofolu +GEB +Páju +lasergame +Keddie +druhak +koudim +PyLadies +Dibu +fajn +Factorio +prokecnout +Ájinu +Dryu +Softu +KOD +KMD +Zvarou +pgnap +TSK +ZMČ +Olšance +Kolátorem +Hlaváku +Githubu +ybv +Řechtáčková +Oleničová +Shakharovi +PostgRESTu +dataře +Kulaťáku +PC02 +Pájovi +AdES +eRecept +ÚZIS +nelékařského +Melegant +Koudi +Anub +Anubovi +Keddieho +Keddiem +Riotu +eGovernment +vw +pdfwidth +img +Hladiši +Wikipedie +anilinux.org +zb62frz +lupénkou +podologickým +podologický +Benne +RVIS +RVISu +Dzurilla +Mařincová +Hrazánková +CZ04259521 +jitka@ucw.cz +package +Keycloak +httpd +identitních +jan.hamal.dvorak@pirati.cz +jitka.novotna@pirati.cz +nginx +Identitní +AO +Mailgunu +sso +mailgun +Pirati +cn +phpBB +uid +sn +givenName +inetOrgPerson +organizationalPerson +piratePerson +displayName +emailVerified +pirateEmail +partyEmail +userPassword +memberOf +LDAPovém +groupOfNames +partyGroup +partyPerson +applicationProcess +simpleSecurityObject +groupOfUniqueNames +uniqueMember +brabemi +Hamala +MariaDB +LDAPem +PirateID +Keycloaku +Rajf +Koordináty +Hamalová +zadávánı́ +e-government +Ansible +Lysolaje +Profantem +sklokeramická +sklokeramické +sklokeramickou +NIA +podejto +Monetem +PGRLF +WebCom +SFRB +Kulovaným +Kulovaný +Proseku +Mordae +avatary +red. +HE +Human +Era +Göbekli +Modřanském +Modřanech +T. +Magic +The +Gathering +Pogů +Murgašem +Doupařské +Odolem +Murgaš +Odol +Desintegrátorů +Profanta +Mordaem +Odolovi +Keddiemu +ACTA +Anubem +Doupař +Mordaeho +Odola +Argel +Murgašové +Murgašů +Mordaemu +čůzou +čůza +teda +SIPO +Filínová +STOPAN +Vlaďka +Slabihoudek +Vilgus +TOPka +Forejt +STANu +vCard +Chaber +Facebookové +Čihánková +RoboAuta +nominant +HMP +podtýmů +Usn +GEOVAP +IOP +ISZR +Insolvenční +IISSP +ISIR +RIS +ISDS +předkontací +Pořizovač +vidimace +Spisovka3 +Spisovka +CzechPOINT +Eunis +AutoCont +vidimaci +Vema +INISOFT +VYP +Joomla +Codexis +GRAMIS +KRNAPu +Excelu +Excelovské +Clavius +LENIA +rollam +ISFP +ÚOHS +OICT +Kmoníček +Facebooku +DDM +Jaboku +volnočasová +volnočasové +brumenda +praktikábly +flipchart +KIVS +SZR +Pohlreicha +PgAdmin4 +pgAdmin +MiniByro +Střelničná +Mon Dieu +Hamalovou +Filínovou +ASD +Aeson +Chodovec +Malovanka +ITOP +SČK +ITOPu +FOSDEM +Chelton +Véronèse +Backendové +Notifikační +Vyřizovací +Kreditový +UML +managera +ByroCraft +TEDu +IaaS +PaaS +MEPNETu +DevOps +graphviz +svg +subgraph +doctype +zúžuje +orchestraci +Orchestrace +Kubernetes +AISů +EKISu +proaktivní +MEPNET +AISy +FLUXPAM +Proxio +AISu +anonymizuje +chatovat +IM +PKS +hostingu +Slacku +Zulip +Etherpad +Jitsi +Etherpadem +Matrixu +desktopové +Zulipu +OpenID +Messengerem +Messengeru +OSS +Dovhomilja +Hikaru +Sulu +CMS2 +Slobodníka +Slobodník +osluněném +předseče +doseči +Kobylisích +Člověkohodinou +Zadina +repozitářům +Matuš +DPČ +identitním +Průhon +NOZ +el. +OVO +BPMN +LIDARem +dronu +Geoportálu +drony +dronů +Archirepo +Archirepu +DC1 +DC5 +DC4 +přeprodeje +Raiffeisen +hrotit +DEVLOP +desků +penězovodů +penězovodům +startgantt +endgantt +Vegacom +Franze +KPMG +SIEM +a| +a4 +KL02 +KL03 +KL07 +KL12 +orchestrace +KL08 +generalista +KL06 +KL05 +KL04 +SDN +LogManager +QRadar +ACI +APIC +RPC +AddNet +Novicom +F5 +balancery +ASA +HPE +OneView +SuperDome +Superdome +SELinux +netfilter +BPF +RHCE +PKI +MCSE +WDS +cmd +PowerShell +DISM +MSI +ESET +CheckPoint +BigFix +přeprodejcem +Pravděpod +Veeam +NetBackup +Veritas +Informix +JetStress +WSH +RMAN +AWR +AIX +UNIXů +Q4 +Q3 +Q2 +Q1 +cellbgcolor +xrefstyle +CoP +adventury +Kagami +Taskwarrior +Hiiragi +Štipl +Ramašeuski +tardi +Tivoli +L1 +IIS +roadmapa +Förster +Redminu +Redminem +cacheování +embeddovat +embeddingu +Moráni +Piroplácení +SimpleID +DokuWiki +lobbystických +CodiMD +Docassemble +Metabase +Matomo +Gitlab +Nextcloud +Prosecká +Podman +shellu +libvirtd +Dockeru +LUKS +HAProxy +Django +Nette +mindsetu +angl. +rozbalovací +Vue.js +Paulus +letý +Matušová +CityVizor +GISQuick +OpenGeoLabs +Čepický +IoT +identitní +SAML2 +kreditový +kreditového +ccTalk +SoC +Libre +Hážovice +dary.pirati.cz +IdP +auth.pirati.cz +Palantír +Profantová +Csc. +OVK +Vařecha +Pandoc +pandoc +stylopisu +Stylopisy +bootstrapovým +gridem +bootstrapu +boostrapovým +FontAwesome +Bootstrapových +px +scss +tagem +Popup +Fedoře +Debianu +ISET +SMD +KiCad +KiCadu +SH1103 +SH1106 +P-DT6 +P-DT6xx +GPIO +GPIOxx +ESP32-WROOM-32 +S1 +S2 +S3 +GPIO0 +mAh +EHAO +D1 +D2 +kΩ +Digi-Key +ESP-IDF +toolchain +OMVote +FreeRTOS +videohovor +videohovoru +Skupa +VRM +OSC +VTuber +VRoid +dlib +Tréglova +Helče +JB +OA +OnlyOffice +mezipaměti +uniweb +Jupyter +Googlu +Debian +Lenovo +ThinkPad +E14 +Ryzen +E15 +T14 +T15 +TECHNOTREND +MicroServer +Gen10 +E-2224 +180W +Dokovací +Probook +Alza +TopOffice +CZC +Markdownu +pluginy +Supermicro +rozbalovacího +eduID.cz +CzechELibu +tokenu +Křejpský +JS +geo +poolu +ug +μg +SMSky +Nepejchal +Chotovická +praha +config +Hackage +webdesignu +Lupečka +http://www.pirati.cz +b2i4r6j +www.pirati.cz +info@pirati.cz +rrrr +pluginu +nej +č. +whistleblowerů +Jekyllu +gitovém +Varia +Tayloe diff --git a/spell/cs.utf-8.add.spl b/spell/cs.utf-8.add.spl new file mode 100644 index 0000000..4e0c76e Binary files /dev/null and b/spell/cs.utf-8.add.spl differ diff --git a/spell/cs.utf-8.spl b/spell/cs.utf-8.spl new file mode 100644 index 0000000..e84cb6b Binary files /dev/null and b/spell/cs.utf-8.spl differ diff --git a/spell/en.utf-8.add b/spell/en.utf-8.add new file mode 100644 index 0000000..c979587 --- /dev/null +++ b/spell/en.utf-8.add @@ -0,0 +1,167 @@ +preemptible +CML +evt +performant +GigE +GbE +MPIO +iSCSI +RESTful +APIs +QEMU +QEMU's +DAS +vlan +CLI +JSON +Dvořák +wrt +NTK +Derpy +FFI +Epson +CBOR +mordae +eu +microservices +microservice +Yay +ZeroMQ +gameplay +Laserbeams +metadata +HEPA +ČSN +isopropyl +LH +un-CR +PAA +VZT +peroxyacetic +Beamlines +g +km/h +km/h +GPC +e-banking +Raiffeisenbank +eKonto +CZK +ČSOB +InternetBanking +TXT +TXT +Un-CR +PPs +Appearence +metrological +CueCore +Winans +ČTK +NewsSelect +RSS +λ +µm +SMS +API +ACLs +HVAC +Defectoscopy +Provokátor +WSGI +HKAN +OpenData +CKAN +Facebook +Anonymization +anonymize +Vigory +anonymization +workflow +Anonymized +TODO +anonymized +v +ditaa +Indoktrinátor +telescreen +telescreens +Viera +MP4 +MOV +AVI +FLV +playlist +Playlists +playlists +slideshow +m3u +txt +Kaletusová +Měchurová +a.s. +EtOH +unCR +CRs +zig-zag +Podpis +lang +spelllang +ESI +CAdES +PAdES +XAdES +ASiC +ASN1 +ASN.1 +DER +OpenSC +SpIS +PEP8 +jan.dvorak@singularita.net +heredocs +indoktrinator +PostgreSQL +postgresql +localhost +url +ffmpeg +ffprobe +backend +frontend +Singularita +CTO +PostgREST +PgNap +:toc: +MicroPython +PyKids +ESP32 +MEMS +MA30 +Áju +MPU6050 +VR +MPU9250 +Geoscape +Whac-A-Mole +GDPR +Tayloe +MΩ +MCU +FPGA +RP2040 +GPIO +kΩ +GPIOs +Ω +datasheet +mV +UTP +nF +PySDR +RP2040's +Cortex-M0+ +Arduino +Msps +DMA diff --git a/spell/en.utf-8.add.spl b/spell/en.utf-8.add.spl new file mode 100644 index 0000000..c5b37e5 Binary files /dev/null and b/spell/en.utf-8.add.spl differ diff --git a/spell/en.utf-8.spl b/spell/en.utf-8.spl new file mode 100644 index 0000000..adcf9eb Binary files /dev/null and b/spell/en.utf-8.spl differ diff --git a/spell/en.utf-8.sug b/spell/en.utf-8.sug new file mode 100644 index 0000000..e59f197 Binary files /dev/null and b/spell/en.utf-8.sug differ diff --git a/spell/simple.utf-8.spl b/spell/simple.utf-8.spl new file mode 100644 index 0000000..f7940dc Binary files /dev/null and b/spell/simple.utf-8.spl differ diff --git a/template/adoc b/template/adoc new file mode 100644 index 0000000..6e19cd7 --- /dev/null +++ b/template/adoc @@ -0,0 +1,10 @@ += +:numbered: +:icons: font +:lang: cs +:note-caption: Poznámka +:warning-caption: Pozor +:toc-title: Obsah +:toc: left + +// vim:set spelllang=cs: diff --git a/template/h b/template/h new file mode 100644 index 0000000..6f70f09 --- /dev/null +++ b/template/h @@ -0,0 +1 @@ +#pragma once diff --git a/template/hs b/template/hs new file mode 100644 index 0000000..d1a2573 --- /dev/null +++ b/template/hs @@ -0,0 +1,18 @@ +-- | +-- Module : +-- Copyright : Jan Hamal Dvořák +-- License : MIT +-- +-- Maintainer : mordae@anilinux.org +-- Stability : unstable +-- Portability : non-portable (ghc) +-- + +module X + ( + ) +where + + + +-- vim:set ft=haskell sw=2 ts=2 et: diff --git a/template/html5 b/template/html5 new file mode 100644 index 0000000..20f4916 --- /dev/null +++ b/template/html5 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/template/make b/template/make new file mode 100644 index 0000000..4fd3db5 --- /dev/null +++ b/template/make @@ -0,0 +1,3 @@ +#!/usr/bin/make -f + +# EOF