diff options
Diffstat (limited to 'xxx')
| -rw-r--r-- | xxx/vim-old/README.md | 48 | ||||
| -rw-r--r-- | xxx/vim-old/colors/miguels.vim | 200 | ||||
| -rw-r--r-- | xxx/vim-old/colors/olgas.vim | 117 | ||||
| l--------- | xxx/vim-old/init.vim | 1 | ||||
| -rw-r--r-- | xxx/vim-old/syntax/htmljinja.vim | 27 | ||||
| -rw-r--r-- | xxx/vim-old/syntax/jinja.vim | 113 | ||||
| -rw-r--r-- | xxx/vim-old/vim-colortune/colortune.vim | 468 | ||||
| -rw-r--r-- | xxx/vim-old/vim-potion/autoload/potion/running.vim | 33 | ||||
| -rw-r--r-- | xxx/vim-old/vim-potion/doc/potion.txt | 99 | ||||
| -rw-r--r-- | xxx/vim-old/vim-potion/ftdetect/potion.vim | 1 | ||||
| -rw-r--r-- | xxx/vim-old/vim-potion/ftplugin/potion/folding.vim | 38 | ||||
| -rw-r--r-- | xxx/vim-old/vim-potion/ftplugin/potion/running.vim | 6 | ||||
| -rw-r--r-- | xxx/vim-old/vim-potion/ftplugin/potion/sections.vim | 47 | ||||
| -rw-r--r-- | xxx/vim-old/vim-potion/syntax/potion.vim | 37 | ||||
| -rw-r--r-- | xxx/vim-old/vim-potion/syntax/potionbytecode.vim | 18 | ||||
| -rw-r--r-- | xxx/vim-old/vimrc | 527 |
16 files changed, 1780 insertions, 0 deletions
diff --git a/xxx/vim-old/README.md b/xxx/vim-old/README.md new file mode 100644 index 0000000..ce66158 --- /dev/null +++ b/xxx/vim-old/README.md @@ -0,0 +1,48 @@ +My Vimrc Config +=============== + +This repo hosts my personal vim config files. +They are very unlikely to be useful to anybody (excepting me) at this point. + +Dependancies +============ + +Requires Vundle.vim which is available from github. + +I found the following on vim.org. + +* syntax/htmljinja.vim +* syntax/jinja.vim + +Installation +============ + +* symlink this directory to ~/.vim +* symlink this directory to ~/.config/nvim +* git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim +* Launch vim and run :PluginInstall + +Vim Colortune +============= + +The vim-colortune directory holds my simple, still unpolished plugin to easily tune +the vim colors from inside vim. + +Vim Potion +========== + +The vim-potion directory holds the result of my attempt to learn vimscript along +Steve Losh's book: Learn Vimscript The Hard Way: http://learnvimscriptthehardway.stevelosh.com/ + +License +======= + +Copyright (c) 2014-2019 Michal Idziorek (unless stated otherwise) + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/xxx/vim-old/colors/miguels.vim b/xxx/vim-old/colors/miguels.vim new file mode 100644 index 0000000..79b18af --- /dev/null +++ b/xxx/vim-old/colors/miguels.vim @@ -0,0 +1,200 @@ +" +" Miguel's Vim Colors +" +" So far this scheme is mostly optimized for the gui version of vim. +" adaption for cterm / xterm might follow one day +" +" useful vim help-screens: group-name, highlight-groups, cterm-colors +" rgb: /usr/share/vim/vim73/rgb.txt +" + +set background=dark + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "miguels" + +"first objective is to set: guifg guibg gui and maybe guisp +"afterwards we will port this to xterm +"""""""""""""""""""""""""""""""""""""""""""""""""""" + +"Normal normal text, we can also use "font=Monospace 10" or similar +hi Normal guifg=White guibg=Black gui=none ctermfg=White ctermbg=Black + +""""""""""""""""""""""""""""""""""""""""""""""""""" + +"Comment /* */, //, ... +hi Comment guifg=#5a7 gui=none ctermfg=DarkGreen cterm=none + +"Constant true, false, 0.123, "hello", <iostream> ... +hi Constant guifg=#8f6 gui=bold ctermfg=Cyan cterm=none + +"Identifier mysql_escape_string, $dupa, ... +hi Identifier guifg=orange gui=bold ctermfg=Brown cterm=none + +"Statement if, for, return, ... +hi Statement guifg=#f76 gui=bold ctermfg=Red cterm=none + +"PreProc #include, ... +hi PreProc guifg=#fe5 gui=none ctermfg=Yellow cterm=none + +"Type int, float, bool, struct ... +hi Type guifg=#89f gui=bold ctermfg=Blue cterm=bold + +"Special <?php, '\n', ... +hi Special guibg=gray20 guifg=#afc gui=bold ctermbg=DarkGray ctermfg=Green cterm=bold + + +" +hi Underlined gui=underline,bold guibg=#521 guifg=white ctermbg=black ctermfg=white cterm=underline +hi Ignore guifg=grey30 ctermfg=DarkGray + +"hi Error guifg=white guibg=#a00 gui=bold cterm=bold ctermfg=white ctermbg=red +hi Error guibg=#a00 +hi Todo guifg=black guibg=#dd7 gui=bold ctermbg=yellow ctermfg=black + +"""""""""""""""""""""""""""""""""""""""""""""""" + +"ColorColumn used for the columns set with 'colorcolumn' +hi ColorColumn guibg=#200 ctermbg=DarkRed ctermfg=White + +"Conceal placeholder characters substituted for concealed text (see 'conceallevel') +hi Conceal guibg=gray20 + +"Cursor the character under the cursor +hi Cursor guifg=black guibg=#afe gui=bold + +"CursorIM like Cursor, but used when in IME mode |CursorIM| +" I do not use this by now (set to strange colors to notice them easily) +hi CursorIM gui=underline guifg=yellow guibg=red + +"CursorColumn the screen column that the cursor is in when 'cursorcolumn' is set +hi CursorColumn guibg=#052010 + +"CursorLine the screen line that the cursor is in when 'cursorline' is set +hi CursorLine guibg=#052010 + +"Directory directory names (and other special names in listings) +hi Directory guifg=green + +"DiffAdd diff mode: Added line |diff.txt| +hi DiffAdd guibg=#326 + +"DiffChange diff mode: Changed line |diff.txt| +hi DiffChange gui=reverse + +"DiffDelete diff mode: Deleted line |diff.txt| +hi DiffDelete guibg=#a43 guifg=white + +"DiffText diff mode: Changed text within a changed line |diff.txt| +hi DiffText guibg=DarkRed + +"ErrorMsg error messages on the command line +hi ErrorMsg guifg=white guibg=#a00 gui=bold + +"VertSplit the column separating vertically split windows +hi VertSplit guibg=gray20 guifg=gray60 gui=none + +"Folded line used for closed folds +hi Folded guibg=gray20 guifg=#f7f gui=bold + +"FoldColumn 'foldcolumn' +hi FoldColumn guibg=gray20 guifg=#f7f gui=bold + +"SignColumn column where |signs| are displayed +hi SignColumn guibg=gray10 + +"IncSearch 'incsearch' highlighting; also used for the text replaced with ":s///c" +hi IncSearch guifg=yellow guibg=black + +"LineNr Line number for ":number" and ":#" commands, and when 'number' or 'relativenumber' option is set. +hi LineNr guifg=gray80 guibg=gray10 gui=none ctermbg=Black ctermfg=Gray + +"CursorLineNr Like LineNr when 'cursorline' is set for the cursor line. +hi CursorLineNr guifg=gray10 guibg=gray60 gui=bold + +"MatchParen The character under the cursor or just before it, if it is a paired bracket, and its match. |pi_paren.txt| +hi MatchParen guifg=black guibg=white gui=bold + +"ModeMsg 'showmode' message (e.g., "-- INSERT --") +hi ModeMsg guifg=#9fa gui=bold guibg=gray10 + +"MoreMsg |more-prompt| +hi MoreMsg guifg=yellow guibg=gray10 gui=bold + +"NonText '~' and '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line). +hi NonText guibg=gray10 guifg=#f0f gui=bold + +"Pmenu Popup menu: normal item. +hi Pmenu guibg=orange guifg=black + +"PmenuSel Popup menu: selected item. +hi PmenuSel guibg=red guifg=black gui=bold + +"PmenuSbar Popup menu: scrollbar. +hi PmenuSbar guibg=red + +"PmenuThumb Popup menu: Thumb of the scrollbar. +hi PmenuThumb guibg=black + +"Question |hit-enter| prompt and yes/no questions +hi Question guifg=yellow guibg=gray10 gui=bold + +"Search Last search pattern highlighting (see 'hlsearch'). Also used for highlighting the current line in the quickfix window and similar items that need to stand out. +hi Search guibg=orange guifg=black + +"SpecialKey Meta and special keys listed with ":map", also for text used to show unprintable characters in the text, 'listchars'. Generally: text that is displayed differently from what it really is. +hi SpecialKey guibg=gray20 guifg=#f95 gui=bold + +"SpellBad Word Warsaw that is not recoggized by the spellchecker. |spell| This will be combined with the highlighting used otherwise. +hi SpellBad gui=undercurl guisp=red + +"SpellCap Word that should start with a capital. |spell| This will be combined with the highlighting used otherwise. +hi SpellCap gui=undercurl guisp=yellow + +"SpellLocal Word that is recognized by the spellchecker as one that is used in another region. |spell| This will be combined with the highlighting used otherwise. +hi SpellLocal gui=undercurl guisp=LightBlue + +"SpellRare Word that is recognized by the spellchecker as one that is hardly ever used. |spell| This will be combined with the highlighting used otherwise. +hi SpellRare gui=undercurl guisp=green + +"StatusLine status line of current window +hi StatusLine guibg=gray20 guifg=white gui=none + +"StatusLineNC status lines of not-current windows Note: if this is equal to "StatusLine" Vim will use "^^^" in the status line of the current window. +hi StatusLineNC guibg=gray10 guifg=grey50 gui=none + +"Title titles for output from ":set all", ":autocmd" etc. +hi Title guifg=red guibg=gray10 gui=bold + +"Visual Visual mode selection +hi Visual gui=none guifg=white guibg=blue ctermfg=white ctermbg=blue cterm=none term=reverse + +"VisualNOS Visual mode selection when vim is "Not Owning the Selection". Only X11 Gui's |gui-x11| and |xterm-clipboard| supports this. +" I do not use this by now (set to strange colors to notice them easily) +hi VisualNOS gui=underline guifg=yellow guibg=red + +"WarningMsg warning messages +hi WarningMsg guifg=black guibg=#fa0 gui=bold + +"WildMenu current match in 'wildmenu' completion +hi WildMenu guibg=yellow guifg=black gui=bold + +" +"(The following only applies to the terminal version) +" + +"TabLine tab pages line, not active tab page label +hi TabLine ctermbg=darkgray ctermfg=gray + +"TabLineFill tab pages line, where there are no labels +hi TabLineFill ctermbg=black cterm=none + +"TabLineSel tab pages line, active tab page label +hi TabLineSel ctermbg=gray ctermfg=white + + diff --git a/xxx/vim-old/colors/olgas.vim b/xxx/vim-old/colors/olgas.vim new file mode 100644 index 0000000..1d7131e --- /dev/null +++ b/xxx/vim-old/colors/olgas.vim @@ -0,0 +1,117 @@ +set background=dark +hi clear +if exists("syntax_on") +syntax reset +endif +let g:colors_name = "olgas" + +" cterm colors +hi Normal cterm=NONE ctermfg=15 ctermbg=0 +hi Comment cterm=NONE ctermfg=32 ctermbg=NONE +hi Constant cterm=NONE ctermfg=40 ctermbg=NONE +hi Identifier cterm=bold ctermfg=11 ctermbg=NONE +hi Statement cterm=bold ctermfg=196 ctermbg=NONE +hi PreProc cterm=NONE ctermfg=136 ctermbg=NONE +hi Type cterm=bold ctermfg=135 ctermbg=NONE +hi Special cterm=bold ctermfg=51 ctermbg=NONE +hi Underlined cterm=underline ctermfg=NONE ctermbg=NONE +hi Ignore cterm=NONE ctermfg=240 ctermbg=NONE +hi Error cterm=bold ctermfg=15 ctermbg=196 +hi Todo cterm=bold ctermfg=16 ctermbg=11 +hi ColorColumn cterm=NONE ctermfg=NONE ctermbg=17 +hi Conceal cterm=NONE ctermfg=248 ctermbg=NONE +hi CursorColumn cterm=NONE ctermfg=NONE ctermbg=17 +hi CursorLine cterm=underline ctermfg=NONE ctermbg=17 +hi Directory cterm=NONE ctermfg=11 ctermbg=NONE +hi DiffAdd cterm=NONE ctermfg=0 ctermbg=14 +hi DiffChange cterm=NONE ctermfg=0 ctermbg=14 +hi DiffText cterm=NONE ctermfg=0 ctermbg=14 +hi ErrorMsg cterm=bold ctermfg=15 ctermbg=196 +hi VertSplit cterm=NONE ctermfg=248 ctermbg=17 +hi Folded cterm=bold ctermfg=15 ctermbg=17 +hi FoldColumn cterm=bold ctermfg=11 ctermbg=17 +hi SignColumn cterm=bold ctermfg=14 ctermbg=17 +hi IncSearch cterm=bold ctermfg=16 ctermbg=208 +hi LineNr cterm=NONE ctermfg=239 ctermbg=NONE +hi CursorLineNr cterm=bold ctermfg=16 ctermbg=7 +hi MatchParen cterm=bold ctermfg=196 ctermbg=NONE +hi ModeMsg cterm=bold ctermfg=NONE ctermbg=4 +hi MoreMsg cterm=bold ctermfg=NONE ctermbg=4 +hi NonText cterm=bold ctermfg=4 ctermbg=NONE +hi PmenuSel cterm=NONE ctermfg=0 ctermbg=14 +hi PmenuSbar cterm=NONE ctermfg=0 ctermbg=14 +hi PmenuThumb cterm=NONE ctermfg=0 ctermbg=14 +hi Question cterm=bold ctermfg=15 ctermbg=2 +hi Search cterm=bold ctermfg=16 ctermbg=11 +hi SpecialKey cterm=bold ctermfg=11 ctermbg=17 +hi SpellBad cterm=underline ctermfg=203 ctermbg=NONE +hi SpellCap cterm=underline ctermfg=214 ctermbg=NONE +hi SpellLocal cterm=underline ctermfg=105 ctermbg=NONE +hi SpellRare cterm=underline ctermfg=112 ctermbg=NONE +hi StatusLine cterm=NONE ctermfg=NONE ctermbg=NONE +hi StatusLineNC cterm=NONE ctermfg=241 ctermbg=NONE +hi Title cterm=bold ctermfg=14 ctermbg=NONE +hi Visual cterm=bold ctermfg=NONE ctermbg=4 +hi VisualNOS cterm=bold,underline ctermfg=11 ctermbg=196 +hi WarningMsg cterm=bold ctermfg=15 ctermbg=1 +hi WildMenu cterm=bold ctermfg=15 ctermbg=17 +hi TabLine cterm=NONE ctermfg=248 ctermbg=17 +hi TabLineFill cterm=NONE ctermfg=0 ctermbg=17 +hi TabLineSel cterm=bold ctermfg=15 ctermbg=0 + +"gui colors +hi Normal gui=NONE guifg=white guibg=black guisp=NONE +hi Comment gui=NONE guifg=#7799cc guibg=NONE guisp=NONE +hi Constant gui=NONE guifg=green guibg=NONE guisp=NONE +hi Identifier gui=bold guifg=yellow guibg=NONE guisp=NONE +hi Statement gui=bold guifg=orangered guibg=NONE guisp=NONE +hi PreProc gui=NONE guifg=#ffaa44 guibg=NONE guisp=NONE +hi Type gui=bold guifg=#aa55ff guibg=NONE guisp=NONE +hi Special gui=bold guifg=cyan guibg=NONE guisp=NONE +hi Underlined gui=underline guifg=NONE guibg=NONE guisp=NONE +hi Ignore gui=NONE guifg=grey20 guibg=NONE guisp=NONE +hi Error gui=bold guifg=white guibg=red guisp=NONE +hi Todo gui=bold guifg=black guibg=gold guisp=NONE +hi ColorColumn gui=NONE guifg=NONE guibg=#000036 guisp=NONE +hi Conceal gui=NONE guifg=LightGrey guibg=gray20 guisp=NONE +hi Cursor gui=bold guifg=black guibg=white guisp=NONE +hi CursorIM gui=underline guifg=yellow guibg=red guisp=NONE +hi CursorColumn gui=NONE guifg=NONE guibg=#000036 guisp=NONE +hi CursorLine gui=underline guifg=NONE guibg=#000036 guisp=NONE +hi Directory gui=NONE guifg=yellow guibg=NONE guisp=NONE +hi DiffAdd gui=NONE guifg=black guibg=cyan guisp=NONE +hi DiffChange gui=NONE guifg=black guibg=cyan guisp=NONE +hi DiffText gui=NONE guifg=black guibg=cyan guisp=NONE +hi ErrorMsg gui=bold guifg=white guibg=red guisp=NONE +hi VertSplit gui=NONE guifg=gray20 guibg=#000036 guisp=NONE +hi Folded gui=bold guifg=white guibg=#000056 guisp=NONE +hi FoldColumn gui=bold guifg=yellow guibg=#000026 guisp=NONE +hi SignColumn gui=bold guifg=cyan guibg=#000026 guisp=NONE +hi IncSearch gui=bold guifg=black guibg=orangered guisp=NONE +hi LineNr gui=NONE guifg=gray30 guibg=#000026 guisp=NONE +hi CursorLineNr gui=bold guifg=gray10 guibg=gray60 guisp=NONE +hi MatchParen gui=bold guifg=red guibg=#000036 guisp=NONE +hi ModeMsg gui=bold guifg=white guibg=blue guisp=NONE +hi MoreMsg gui=bold guifg=white guibg=blue guisp=NONE +hi NonText gui=bold guifg=#5577ee guibg=gray5 guisp=NONE +hi PmenuSel gui=NONE guifg=black guibg=cyan guisp=NONE +hi PmenuSbar gui=NONE guifg=black guibg=cyan guisp=NONE +hi PmenuThumb gui=NONE guifg=black guibg=cyan guisp=NONE +hi Question gui=bold guifg=white guibg=darkgreen guisp=NONE +hi Search gui=bold guifg=black guibg=orange guisp=NONE +hi SpecialKey gui=bold guifg=yellow guibg=gray10 guisp=NONE +hi SpellBad gui=undercurl guifg=NONE guibg=NONE guisp=red +hi SpellCap gui=undercurl guifg=NONE guibg=NONE guisp=yellow +hi SpellLocal gui=undercurl guifg=NONE guibg=NONE guisp=LightBlue +hi SpellRare gui=undercurl guifg=NONE guibg=NONE guisp=green +hi StatusLine gui=NONE guifg=NONE guibg=#000026 guisp=NONE +hi StatusLineNC gui=NONE guifg=gray40 guibg=#000026 guisp=NONE +hi Title gui=bold guifg=MediumSpringGreen guibg=NONE guisp=NONE +hi Visual gui=bold guifg=white guibg=blue guisp=NONE +hi VisualNOS gui=underline guifg=yellow guibg=red guisp=NONE +hi WarningMsg gui=bold guifg=white guibg=orangered guisp=NONE +hi WildMenu gui=bold guifg=white guibg=#112266 guisp=NONE +hi TabLine gui=NONE guifg=black guibg=cyan guisp=NONE +hi TabLineFill gui=NONE guifg=black guibg=cyan guisp=NONE +hi TabLineSel gui=NONE guifg=black guibg=cyan guisp=NONE + diff --git a/xxx/vim-old/init.vim b/xxx/vim-old/init.vim new file mode 120000 index 0000000..c9a3c9c --- /dev/null +++ b/xxx/vim-old/init.vim @@ -0,0 +1 @@ +vimrc
\ No newline at end of file diff --git a/xxx/vim-old/syntax/htmljinja.vim b/xxx/vim-old/syntax/htmljinja.vim new file mode 100644 index 0000000..3f9cba4 --- /dev/null +++ b/xxx/vim-old/syntax/htmljinja.vim @@ -0,0 +1,27 @@ +" Vim syntax file +" Language: Jinja HTML template +" Maintainer: Armin Ronacher <armin.ronacher@active-4.com> +" Last Change: 2007 Apr 8 + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +if !exists("main_syntax") + let main_syntax = 'html' +endif + +if version < 600 + so <sfile>:p:h/jinja.vim + so <sfile>:p:h/html.vim +else + runtime! syntax/jinja.vim + runtime! syntax/html.vim + unlet b:current_syntax +endif + +let b:current_syntax = "htmljinja" diff --git a/xxx/vim-old/syntax/jinja.vim b/xxx/vim-old/syntax/jinja.vim new file mode 100644 index 0000000..7704e3a --- /dev/null +++ b/xxx/vim-old/syntax/jinja.vim @@ -0,0 +1,113 @@ +" Vim syntax file +" Language: Jinja template +" Maintainer: Armin Ronacher <armin.ronacher@active-4.com> +" Last Change: 2008 May 9 +" Version: 1.1 +" +" Known Bugs: +" because of odd limitations dicts and the modulo operator +" appear wrong in the template. +" +" Changes: +" +" 2008 May 9: Added support for Jinja2 changes (new keyword rules) + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +syntax case match + +" Jinja template built-in tags and parameters (without filter, macro, is and raw, they +" have special threatment) +syn keyword jinjaStatement containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained and if else in not or recursive as import + +syn keyword jinjaStatement containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained is filter skipwhite nextgroup=jinjaFilter +syn keyword jinjaStatement containedin=jinjaTagBlock contained macro skipwhite nextgroup=jinjaFunction +syn keyword jinjaStatement containedin=jinjaTagBlock contained block skipwhite nextgroup=jinjaBlockName + +" Variable Names +syn match jinjaVariable containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained skipwhite /[a-zA-Z_][a-zA-Z0-9_]*/ +syn keyword jinjaSpecial containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained false true none loop super caller varargs kwargs + +" Filters +syn match jinjaOperator "|" containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained nextgroup=jinjaFilter +syn match jinjaFilter contained skipwhite /[a-zA-Z_][a-zA-Z0-9_]*/ +syn match jinjaFunction contained skipwhite /[a-zA-Z_][a-zA-Z0-9_]*/ +syn match jinjaBlockName contained skipwhite /[a-zA-Z_][a-zA-Z0-9_]*/ + +" Jinja template constants +syn region jinjaString containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained start=/"/ skip=/\\"/ end=/"/ +syn region jinjaString containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained start=/'/ skip=/\\'/ end=/'/ +syn match jinjaNumber containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[0-9]\+\(\.[0-9]\+\)\?/ + +" Operators +syn match jinjaOperator containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[+\-*\/<>=!,:]/ +syn match jinjaPunctuation containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[()\[\]]/ +syn match jinjaOperator containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /\./ nextgroup=jinjaAttribute +syn match jinjaAttribute contained /[a-zA-Z_][a-zA-Z0-9_]*/ + +" Jinja template tag and variable blocks +syn region jinjaNested matchgroup=jinjaOperator start="(" end=")" transparent display containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained +syn region jinjaNested matchgroup=jinjaOperator start="\[" end="\]" transparent display containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained +syn region jinjaNested matchgroup=jinjaOperator start="{" end="}" transparent display containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained +syn region jinjaTagBlock matchgroup=jinjaTagDelim start=/{%-\?/ end=/-\?%}/ skipwhite containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaRaw,jinjaString,jinjaNested,jinjaComment + +syn region jinjaVarBlock matchgroup=jinjaVarDelim start=/{{-\?/ end=/-\?}}/ containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaRaw,jinjaString,jinjaNested,jinjaComment + +" Jinja template 'raw' tag +syn region jinjaRaw matchgroup=jinjaRawDelim start="{%\s*raw\s*%}" end="{%\s*endraw\s*%}" containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaString,jinjaComment + +" Jinja comments +syn region jinjaComment matchgroup=jinjaCommentDelim start="{#" end="#}" containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaString + +" Block start keywords. A bit tricker. We only highlight at the start of a +" tag block and only if the name is not followed by a comma or equals sign +" which usually means that we have to deal with an assignment. +syn match jinjaStatement containedin=jinjaTagBlock contained skipwhite /\({%-\?\s*\)\@<=\<[a-zA-Z_][a-zA-Z0-9_]*\>\(\s*[,=]\)\@!/ + +" and context modifiers +syn match jinjaStatement containedin=jinjaTagBlock contained /\<with\(out\)\?\s\+context\>/ skipwhite + + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_jinja_syn_inits") + if version < 508 + let did_jinja_syn_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + + HiLink jinjaPunctuation jinjaOperator + HiLink jinjaAttribute jinjaVariable + HiLink jinjaFunction jinjaFilter + + HiLink jinjaTagDelim jinjaTagBlock + HiLink jinjaVarDelim jinjaVarBlock + HiLink jinjaCommentDelim jinjaComment + HiLink jinjaRawDelim jinja + + HiLink jinjaSpecial Special + HiLink jinjaOperator Normal + HiLink jinjaRaw Normal + HiLink jinjaTagBlock PreProc + HiLink jinjaVarBlock PreProc + HiLink jinjaStatement Statement + HiLink jinjaFilter Function + HiLink jinjaBlockName Function + HiLink jinjaVariable Identifier + HiLink jinjaString Constant + HiLink jinjaNumber Constant + HiLink jinjaComment Comment + + delcommand HiLink +endif + +let b:current_syntax = "jinja" diff --git a/xxx/vim-old/vim-colortune/colortune.vim b/xxx/vim-old/vim-colortune/colortune.vim new file mode 100644 index 0000000..97f2afd --- /dev/null +++ b/xxx/vim-old/vim-colortune/colortune.vim @@ -0,0 +1,468 @@ +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" +" Miguel's ColorTune plugin +" +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" {{{ +" +" TODO LIST: +" {{{ +" * restrict movement and values, but how??? +" * use R/G/B r/g/b keys to increase/decrease rgb values +" * map some nice short-keys for this buffer only +" * show rgb.txt! to alllow selection of named gui-colors +" * show some dropdowns or something for other stuff +" * let user override some of the values from users vimrc!! +" * enable reset to colortheme +" * clear all groups / clear group completely or just for active mode! +" * document and publish +" * treat NONE and NOT SET AT ALL differently!! +" * add some error detection and treatment! ie. setline etc.. +" * just redraw single lines where possible +" * REORDER and CLEANUP +" * create bundle and move most of functioanlity to autoload, +" except Colortune_start or somehting +" * check if we are not reinventing the wheel at some places: +" ie: getline()? +" * check if there are already such plugins, and find out why this one is +" better ;) +" * BUG: regex limited number so start/stop omittted in complete list +" so it is also not exported via config_dump right now +" * BUG: i do not understand set background. it is always set to dark by now +" * BUG: column names are not nicely aligned +" * BUG: spaces are not supported within key-values +" +" }}} + +" Set some basic defaults and initialize +" {{{ + +" modes are: 0-term, 1-cterm, 2-gui, 3-complete +let s:default_mode=2 + +let s:colortune_buf_name='__COLORTUNE_PLUGIN__' + +let s:temp_reg='a' + +" Define the popular highlight groups +let s:colortable=[ + \ 'Normal', 'Comment', 'Constant', 'Identifier', + \ 'Statement', 'PreProc', 'Type', 'Special', 'Underlined', + \ 'Ignore', 'Error', 'Todo', 'ColorColumn', 'Conceal', 'Cursor', + \ 'CursorIM', 'CursorColumn', 'CursorLine', 'Directory', + \ 'DiffAdd', 'DiffChange', 'DiffText', 'ErrorMsg', 'VertSplit', + \ 'Folded', 'FoldColumn', 'SignColumn', 'IncSearch', 'LineNr', + \ 'CursorLineNr', 'MatchParen', 'ModeMsg', 'MoreMsg', 'NonText', + \ 'PmenuSel', 'PmenuSbar', 'PmenuThumb', 'Question', 'Search', + \ 'SpecialKey', 'SpellBad', 'SpellCap', 'SpellLocal', + \ 'SpellRare', 'StatusLine', 'StatusLineNC', 'Title', 'Visual', + \ 'VisualNOS', 'WarningMsg', 'WildMenu', 'TabLine', + \ 'TabLineFill', 'TabLineSel' ] + + +" Define modes and their relevant keys in the highlight groups +let s:modes_labels=['Black & White Terminals','Color Terminals','GUI','Complete'] +let s:modes=[ ['term','start','stop'], + \ ['cterm','ctermfg','ctermbg'], + \ ['gui','guifg','guibg','guisp'], + \ ['term','cterm','ctermfg','ctermbg','gui','guifg','guibg','guisp']] + +" init +" +let s:current_mode=s:default_mode +" }}} + +" Colortune_getline() +" {{{ +" Retruns current line of current buffer. +" +function! Colortune_getline() + return getline(line('.')) +endfunction +" }}} + +" Colortune_getcmdoutput(cmd) +" {{{ +" Redirect the output of cmd to a temporary register and return result. +" +function! Colortune_getcmdoutput(cmd) + + let reg_val=getreg(s:temp_reg) + redir @a + silent execute a:cmd + redir END + let val=getreg(s:temp_reg) + call setreg(s:temp_reg,reg_val) + return val + +endfunction +" }}} + +" Colortune_getattr(group,key) +" {{{ +" Get the value of one 'key' of a highlighting group +" returns 'NONE' if the requested key is not specified +" +function! Colortune_getattr(group,key) + + let hil=Colortune_getcmdoutput('hi '.a:group) + + " extract the value for given key (if exists) and return + if hil !~# a:key.'=.\+' + let val='NONE' + else + let val=substitute(hil.' ','^.* '.a:key.'=\(.\{-}\)\s.*$','\1','') + endif + return val + +endfunction +"}}} + +" Colortune_getmax(key) +" {{{ +" Returns maximal length of values for requested key. +" key='GROUP_NAME' returns maximal length of highlight group names. +" +function! Colortune_getmax(key) + let max=0 + for group in s:colortable + if(a:key==#'GROUP_NAME') + let length=len(group) + else + let length=len(Colortune_getattr(group,a:key)) + endif + let max = max<length ? length : max + endfor + return max +endfunction +" }}} + +" Colortune_extend(val,fill,len) +" {{{ +" Extend string 'val' with characters 'fill' to match length of 'len' +" +function! Colortune_extend(val,fill,len) + + let len=a:len-len(a:val) + let val=a:val + + while len>0 + let len-=1 + let val.=a:fill + endwhile + return val + +endfunction +" }}} + +" Colortune_togglemode() +" {{{ +" Cycles through available modes +" +function! Colortune_togglemode() + + let max=len(s:modes)-1 + let s:current_mode+=1 + if s:current_mode > max + let s:current_mode=0 + endif + call Colortune_fill() +endfunction +" }}} + +" Colortune_getregexpattern() +" {{{ +" Helper function that builds our regex-pattern for setting and clearing +" the highlight values, based on the current buffer-line +" +function! Colortune_getregexpattern() + + let str='^\(.\{-}\)\s.*' + + for column in s:modes[s:current_mode] + let str.='.*\[\(.*\)\]' + endfor + + return str + +endfunction +" }}} + +" Colortune_getregexstring() +" {{{ +" Helper function that builds our substitution string for setting +" the highlight values, based on the current buffer-line +" +function! Colortune_getregexstring() + let str='' + let idx=2 + for column in s:modes[s:current_mode] + let str.=' '.column.'=\'.idx + let idx+=1 + endfor + return str +endfunction +" }}} + +" Colortune_clearbyline() +" {{{ +" Clear highlight group in current line +" Set highlight group values by extracting them from the current line +" +function! Colortune_clearbyline() + let myline=Colortune_getline() + exec substitute(myline,Colortune_getregexpattern(),'hi clear \1','') + call Colortune_fill() +endfunction +" }}} + +" Colortune_setbyline() +" {{{ +" Set highlight group values by extracting them from the current line +" +function! Colortune_setbyline() + let myline=Colortune_getline() + exec substitute(myline,Colortune_getregexpattern(),'hi \1 '.Colortune_getregexstring(),'') + call Colortune_fill() +endfunction +" }}} + +" Colortune_fill() +" {{{ +" Create or Redraw the ColorTune Window/Buffer +" +function! Colortune_fill() + + " open a new split or switch to it (if already open) + let potbufnr=bufwinnr(s:colortune_buf_name) + if potbufnr==#-1 + execute 'vsplit '.s:colortune_buf_name + else + execute potbufnr.'wincmd w' + endif + + " set some options + setlocal filetype=colortune + setlocal buftype=nofile + setlocal nowrap + + " set mappings + nnoremap <buffer> <cr> :call Colortune_setbyline()<cr> + inoremap <buffer> <cr> <esc>:call Colortune_setbyline()<cr> + + nnoremap <buffer> X :call Colortune_clearbyline()<cr> + nnoremap <buffer> M :call Colortune_togglemode()<cr> + nnoremap <buffer> C :call Colortune_dumpconfig()<cr> + + nnoremap <buffer> Ar :call Colortune_manipulate_rgb(16,0,0)<cr> + nnoremap <buffer> Sr :call Colortune_manipulate_rgb(-16,0,0)<cr> + nnoremap <buffer> Ag :call Colortune_manipulate_rgb(0,16,0)<cr> + nnoremap <buffer> Sg :call Colortune_manipulate_rgb(0,-16,0)<cr> + nnoremap <buffer> Ab :call Colortune_manipulate_rgb(0,0,16)<cr> + nnoremap <buffer> Sb :call Colortune_manipulate_rgb(0,0,-16)<cr> + + nnoremap <buffer> ar :call Colortune_manipulate_rgb(1,0,0)<cr> + nnoremap <buffer> sr :call Colortune_manipulate_rgb(-1,0,0)<cr> + nnoremap <buffer> ag :call Colortune_manipulate_rgb(0,1,0)<cr> + nnoremap <buffer> sg :call Colortune_manipulate_rgb(0,-1,0)<cr> + nnoremap <buffer> ab :call Colortune_manipulate_rgb(0,0,1)<cr> + nnoremap <buffer> sb :call Colortune_manipulate_rgb(0,0,-1)<cr> + + + nnoremap <buffer> VG :call Colortune_showguirgb()<cr> + nnoremap <buffer> VC :call Colortune_showctermrgb()<cr> + + + " set syntax highlighting for our group keywords + for mycolor in s:colortable + execute 'syn keyword '.mycolor.' '.mycolor + endfor + + " remember current position and clean the buffer + let top_line=line('w0') + let cur_line=line('.') + let save_cursor = getpos(".") + normal! ggdG + + " display header with some infos + call append(line('$')-1,'------------------------------------------') + call append(line('$')-1,'Colortable Mode: ['.s:modes_labels[s:current_mode].']') + call append(line('$')-1,'------------------------------------------') + call append(line('$')-1,'ENTER - Set from current line -----------') + call append(line('$')-1,'X - Unset current line --------------') + call append(line('$')-1,'M - Toggle Mode ---------------------') + call append(line('$')-1,'C - Dump Config to new buffer -------') + call append(line('$')-1,'VC - View palette (cterm) -----------') + call append(line('$')-1,'VG - View palette (gui) -------------') + call append(line('$')-1,'a[rgb] - increase [rgb]] by 1 ------------') + call append(line('$')-1,'A[rgb] - increase [rgb]] by 16 -----------') + call append(line('$')-1,'s[rgb] - decrease [rgb]] by 1 ------------') + call append(line('$')-1,'S[rgb] - decrease [rgb]] by 16 -----------') + call append(line('$')-1,'------------------------------------------') + call append(line('$')-1,'-') + + " find out the maximal length for each column + let max_len=[Colortune_getmax('GROUP_NAME')] + for column in s:modes[s:current_mode] + let max_len+=[Colortune_getmax(column)] + endfor + + " display column names + let labels=Colortune_extend('GROUP_NAME'.' ',' ',5+max_len[0]) + let idx=1 + for column in s:modes[s:current_mode] + let labels.=' '.Colortune_extend(column,' ',max_len[idx]).' ' + let idx+=1 + endfor + call append(line('$')-1,labels) + call append(line('$')-1,'------------------------------------------') + + " paint the color table + for group in s:colortable + + let colorline=Colortune_extend(group.' ','-',5+max_len[0]) + + let idx=1 + for column in s:modes[s:current_mode] + let value=Colortune_getattr(group,column) + let colorline.=' ['.Colortune_extend(value,' ',max_len[idx]).'] ' + let idx+=1 + endfor + + call append(line('$')-1,colorline) + + endfor + + " delete last (empty) line and restore initial position. + normal ddgg + exec 'normal G'.top_line.'G'.cur_line.'G' + call setpos('.', save_cursor) + +endfunction +" }}} + +" Colortune_dumpconfig() +" {{{ +" +function! Colortune_dumpconfig() + + new + set ft=vim + set nowrap + + " add header stuff for our colortheme + call append(line('$')-1,[ + \ 'set background=dark', + \ 'hi clear', + \ 'if exists("syntax_on")', 'syntax reset', 'endif', + \ 'let g:colors_name = "mycolorscheme"']) + + + for group in s:colortable + let config='' + + for column in s:modes[s:current_mode] + let value=Colortune_getattr(group,column) + let config.=' '.column.'='.value + endfor + call append(line('$')-1,'hi '.group.config) + endfor + + normal gg + +endfunction +" }}} + +" Colortune_manipulate_rgb() +" {{{ +" TODO: restore register! +" TODO: check overflow/underflow +" TODO: check format +" +function! Colortune_manipulate_rgb(r,g,b) + + normal T["adt] + let val=getreg('a') + let r='0x'.substitute(val,'^#\(\x\x\)\x\x\x\x','\1','') + let g='0x'.substitute(val,'^#\x\x\(\x\x\)\x\x','\1','') + let b='0x'.substitute(val,'^#\x\x\x\x\(\x\x\)','\1','') + call setreg('a',printf("#%02x%02x%02x",r+a:r,g+a:g,b+a:b)) + normal "aP + call Colortune_setbyline() + +endfunction + + +" }}} + +" Colortune_showguirgb() +"{{{ +function! Colortune_showguirgb() + + vnew + set nowrap + nnoremap <buffer> <cr> :call Colortune_fillincolor()<cr> + + r $VIMRUNTIME/rgb.txt + let linenr=1 + let result=[] + while linenr<line('$') + + let myline=getline(linenr) + if myline =~# '^\s*\d\+\s\+\d\+\s\+\d\+\s\+\w\+\s*$' + exec substitute(myline,'^\s*\(\d\+\)\s\+\(\d\+\)\s\+\(\d\+\)\s\+\(\w\+\)\s*$','let extr=["\4",\1,\2,\3]','') + exec 'hi color_'.extr[0].' guibg='.printf("#%02x%02x%02x",extr[1],extr[2],extr[3]) + exec 'syntax match color_'.extr[0].' "color_'.extr[0].'"' + let result+=[extr[0].' ~ color_'.extr[0]] + else + endif + + let linenr+=1 + + endwhile + + normal ggdG + call append(0,result) + + +endfunction +"}}} + +" Colortune_showctermrgb() +"{{{ +function! Colortune_showctermrgb() + + vnew + set nowrap + nnoremap <buffer> <cr> :call Colortune_fillincolor()<cr> + + let colornr=0 + let result=[] + while colornr<256 + + exec 'hi color_'.colornr.' ctermbg='.colornr + exec 'syntax match color_'.colornr.' "color_'.colornr.'"' + let result+=[colornr.' ~ color_'.colornr] + let colornr+=1 + + endwhile + + call append(0,result) + + +endfunction +"}}} + +" Colortune_fillincolor() +" {{{ +function! Colortune_fillincolor() + normal 0"ayaw + let potbufnr=bufwinnr(s:colortune_buf_name) + execute potbufnr.'wincmd w' + normal di]"aP + call Colortune_setbyline() +endfunction +" }}} + +" }}} + diff --git a/xxx/vim-old/vim-potion/autoload/potion/running.vim b/xxx/vim-old/vim-potion/autoload/potion/running.vim new file mode 100644 index 0000000..562f713 --- /dev/null +++ b/xxx/vim-old/vim-potion/autoload/potion/running.vim @@ -0,0 +1,33 @@ +function! potion#running#PotionCompileAndRunFile() + write + silent !clear + execute "!" . g:potion_command . " " . bufname("%") +endfunction + +function! potion#running#PotionShowBytecode() + + write + + " Get the bytecode. + let bytecode = system(g:potion_command . " -c -V " . bufname("%") . " 2>&1") + + " Check returned string for errors. + if bytecode=~#"Syntax error" + let bytecode = "SYNTAX ERROR!! Check your potion." + endif + + " Open a new split and set it up or use existing one! + let potbufnr=bufwinnr('__Potion_Bytecode__') + if potbufnr==#-1 + vsplit __Potion_Bytecode__ + else + execute potbufnr.'wincmd w' + endif + normal! ggdG + setlocal filetype=potionbytecode + setlocal buftype=nofile + + " Insert the bytecode. + call append(0, split(bytecode, '\v\n')) + +endfunction diff --git a/xxx/vim-old/vim-potion/doc/potion.txt b/xxx/vim-old/vim-potion/doc/potion.txt new file mode 100644 index 0000000..4cd9191 --- /dev/null +++ b/xxx/vim-old/vim-potion/doc/potion.txt @@ -0,0 +1,99 @@ +*potion.txt* basic functionality for the potion programming language +======================================================================== +INTRO *PotionIntro* + + ___ _ _ ~ + / _ \___ | |_(_) ___ _ __ ~ + / /_)/ _ \| __| |/ _ \| '_ \ ~ + / ___/ (_) | |_| | (_) | | | | ~ + \/ \___/ \__|_|\___/|_| |_| ~ + + + Functionality for the Potion programming language. + Includes syntax highlighting, code folding, and more! + + Coded by Michal Idziorek <m.i@gmx.at> + along the "Learn Vimscript the Hard Way" tutorial: + http://learnvimscriptthehardway.stevelosh.com + + +======================================================================== +CONTENTS *PotionContents* + + 1. Usage .............. |PotionUsage| + 2. Installation ....... |PotionInstall| + 3. Files .............. |PotionFiles| + 4. Credits ............ |PotionCredits| + + +======================================================================== +USAGE *PotionUsage* + +This plugin will automatically provide syntax highlighting and folding +for potion files (files ending in .pn). + +It remaps the section movement commands, to provide easy navigation +through potion files: +> + [[ ]] [] ][ +< + +The plugin offers mappings for invoking the potion compiler as well: + +Press <localleader>r for running the currently opened potion file. +Press <localleader>b for showing its compiled bytecode in a new window. + +Set your maplocalleader in your .vimrc like this: +> + let maplocalleader="\<space>" +< + +You can set the path to the potion binary in your .vimrc too: +> + let g:potion_command = "/home/miguel/int/dev/potion/bin/potion" +< + +Otherwise the following default value will be used: +> + let g:potion_command = "potion" +< + +======================================================================== +INSTALLATION *PotionInstall* + +Use Tim Pope's marvellous 'pathogen.vim' to simply put the potion plugin +into its own private directory. You can get Pathogen on GitHub: +> + https://github.com/tpope/vim-pathogen +< + +Use git to clone the plugin directly into its target directory to keep +it up to date easily. +> + ~/.vim/bundle/potion/ +< + +======================================================================== +FILES *PotionFiles* + +The potion plugin ships with the following files: + +doc/potion.txt ................ Documentation (this file) +ftdetect/potion.vim ........... Detection of potion files by .pn ending +syntax/potion.vim ............. Syntax highlighting for .pn files +syntax/potionbytecode.vim ..... Syntax highlighting for bytecode +ftplugin/potion/folding.vim ... Folding functionality +ftplugin/potion/sections.vim .. Section movement via [[,]],[],][ +ftplugin/potion/running.vim ... Mappings for running the potion compiler +autoload/potion/running.vim ... Functions for running the compiler + + +======================================================================== +CREDITS *PotionCredits* + +This is my very first Vim plugin and it emerged during the course +of reading Steve Losh' wonderful Vimscript tutorial: +> + "Learn Vimscript the Hard Way". + http://learnvimscriptthehardway.stevelosh.com +< diff --git a/xxx/vim-old/vim-potion/ftdetect/potion.vim b/xxx/vim-old/vim-potion/ftdetect/potion.vim new file mode 100644 index 0000000..a3a3170 --- /dev/null +++ b/xxx/vim-old/vim-potion/ftdetect/potion.vim @@ -0,0 +1 @@ +au BufNewFile,BufRead *.pn setfiletype potion diff --git a/xxx/vim-old/vim-potion/ftplugin/potion/folding.vim b/xxx/vim-old/vim-potion/ftplugin/potion/folding.vim new file mode 100644 index 0000000..d4cb32b --- /dev/null +++ b/xxx/vim-old/vim-potion/ftplugin/potion/folding.vim @@ -0,0 +1,38 @@ +setlocal foldmethod=expr +setlocal foldexpr=GetPotionFold(v:lnum) + +function! s:NextNonBlankLine(lnum) + let numlines = line('$') + let current = a:lnum + 1 + + while current <= numlines + if getline(current) =~? '\v\S' + return current + endif + + let current += 1 + endwhile + + return -2 +endfunction + +function! s:IndentLevel(lnum) + return indent(a:lnum) / &shiftwidth +endfunction + +function! GetPotionFold(lnum) + if getline(a:lnum) =~? '\v^\s*$' + return '-1' + endif + + let this_indent = <SID>IndentLevel(a:lnum) + let next_indent = <SID>IndentLevel(<SID>NextNonBlankLine(a:lnum)) + + if next_indent == this_indent + return this_indent + elseif next_indent < this_indent + return this_indent + elseif next_indent > this_indent + return '>' . next_indent + endif +endfunction diff --git a/xxx/vim-old/vim-potion/ftplugin/potion/running.vim b/xxx/vim-old/vim-potion/ftplugin/potion/running.vim new file mode 100644 index 0000000..d70adc0 --- /dev/null +++ b/xxx/vim-old/vim-potion/ftplugin/potion/running.vim @@ -0,0 +1,6 @@ +if !exists("g:potion_command") + let g:potion_command = "potion" +endif + +nnoremap <buffer> <localleader>r :call potion#running#PotionCompileAndRunFile()<cr> +nnoremap <buffer> <localleader>b :call potion#running#PotionShowBytecode()<cr> diff --git a/xxx/vim-old/vim-potion/ftplugin/potion/sections.vim b/xxx/vim-old/vim-potion/ftplugin/potion/sections.vim new file mode 100644 index 0000000..200415c --- /dev/null +++ b/xxx/vim-old/vim-potion/ftplugin/potion/sections.vim @@ -0,0 +1,47 @@ +function! s:NextSection(type, backwards, visual) + + if a:visual + normal! gv + endif + + if a:type == 1 + let pattern = '\v(\n\n^\S|%^)' + let flags = 'e' + elseif a:type == 2 + let pattern = '\v^\S.*\=.*:$' + let flags = '' + endif + + if a:backwards + let dir = '?' + else + let dir = '/' + endif + + execute 'silent normal! ' . dir . pattern . dir . flags . "\r" + +endfunction + +noremap <script> <buffer> <silent> ]] + \ :call <SID>NextSection(1, 0, 0)<cr> + +noremap <script> <buffer> <silent> [[ + \ :call <SID>NextSection(1, 1, 0)<cr> + +noremap <script> <buffer> <silent> ][ + \ :call <SID>NextSection(2, 0, 0)<cr> + +noremap <script> <buffer> <silent> [] + \ :call <SID>NextSection(2, 1, 0)<cr> + +vnoremap <script> <buffer> <silent> ]] + \ :<c-u>call <SID>NextSection(1, 0, 1)<cr> + +vnoremap <script> <buffer> <silent> [[ + \ :<c-u>call <SID>NextSection(1, 1, 1)<cr> + +vnoremap <script> <buffer> <silent> ][ + \ :<c-u>call <SID>NextSection(2, 0, 1)<cr> + +vnoremap <script> <buffer> <silent> [] + \ :<c-u>call <SID>NextSection(2, 1, 1)<cr> diff --git a/xxx/vim-old/vim-potion/syntax/potion.vim b/xxx/vim-old/vim-potion/syntax/potion.vim new file mode 100644 index 0000000..2ca9dbc --- /dev/null +++ b/xxx/vim-old/vim-potion/syntax/potion.vim @@ -0,0 +1,37 @@ +if exists("b:current_syntax") + finish +endif + +syntax keyword potionKeyword loop times to while +syntax keyword potionKeyword if elsif else +syntax keyword potionKeyword class return +syntax keyword potionFunction print join string + +syntax match potionOperator "\v\." +syntax match potionOperator "\v:" +syntax match potionOperator "\v\=" +syntax match potionOperator "\v\*" +syntax match potionOperator "\v/" +syntax match potionOperator "\v\+" +syntax match potionOperator "\v-" +syntax match potionOperator "\v\?" +syntax match potionOperator "\v\*\=" +syntax match potionOperator "\v/\=" +syntax match potionOperator "\v\+\=" +syntax match potionOperator "\v-\=" + +syntax match potionNumber "\v\d+" +syntax match potionNumber "\v0x\x+" + +syntax region potionString start=/\v"/ skip=/\v\\./ end=/\v"/ + +syntax match potionComment "\v#.*$" + +highlight link potionString String +highlight link potionOperator Operator +highlight link potionKeyword Keyword +highlight link potionFunction Function +highlight link potionComment Comment +highlight link potionNumber Number + +let b:current_syntax = "potion" diff --git a/xxx/vim-old/vim-potion/syntax/potionbytecode.vim b/xxx/vim-old/vim-potion/syntax/potionbytecode.vim new file mode 100644 index 0000000..24e2e44 --- /dev/null +++ b/xxx/vim-old/vim-potion/syntax/potionbytecode.vim @@ -0,0 +1,18 @@ +" minimalistic syntax highlighting for testing purposes + +if exists("b:current_syntax") + finish +endif + +syntax keyword potionKeyword code assign + + +syntax match potionNumber "\v\d+" +syntax region potionString start=/\v"/ skip=/\v\\./ end=/\v"/ + + +highlight link potionString String +highlight link potionKeyword Keyword +highlight link potionNumber Number + +let b:current_syntax = "potionbytecode" diff --git a/xxx/vim-old/vimrc b/xxx/vim-old/vimrc new file mode 100644 index 0000000..1362055 --- /dev/null +++ b/xxx/vim-old/vimrc @@ -0,0 +1,527 @@ +"Miguel's VIMRC (some stuff added recently depends on NVIM) + +" {{{ NOTES +" THIS LOOSE NOTES REQUIRE REVIEW! +" external links to browser +" https://wiki.haskell.org/99_questions/Solutions/34 +" http://www.stephendiehl.com/posts/vim_2016.html +" https://github.com/lukerandall/haskellmode-vim +" :h compiler-plugin +" :help equalprg +" 15:15:33 gagbo | and then you can map it on key like nnoremap │ aauren +" | <F7> :compiler clang-tidy<CR>:make and nnoremap │ abbec +" | <F8> :compiler clang<CR>:make in like │ Accord +" | ~/.vim/after/ftplugin/cpp.vim for example +" https://lexi-lambda.github.io/blog/2018/02/10/an-opinionated-guide-to-haskell-in-2018/ +" https://mendo.zone/fun/neovim-setup-haskell/ +" https://github.com/aloiscochard/codex +" https://github.com/haskell/haskell-ide-engine#using-hie-with-vim-or-neovim ? +" ghc-mod, hlint (haskell) +" https://wiki.haskell.org/Vim +" http://www.alexeyshmalko.com/2014/using-vim-as-c-cpp-ide/ +" https://github.com/vim-airline/vim-airline +" https://github.com/spf13/spf13-vim +" http://antjanus.com/blog/thoughts-and-opinions/use-vim/ +" http://stevelosh.com/blog/2010/09/coming-home-to-vim/ +" http://derekingrouville.com/2012/vim-is-my-ide/ +" https://github.com/VundleVim/Vundle.vim +" draculatheme.com +" learnvimscriptthehardway.stevelosh.com " +" autocomplete +" jump to defintion / list calls / ctags shortcuts? +" spellcheck / translate / thesaurus / dict +" change mappings to more specific mappings and use noremap! +" toggle 'cursorline' via hotkey for nicer reading experience. +" ft=c.doxygen etc. +" include dependancies as git submodules (wherever possible?? seriously?) (licenses?) +" :help complete-functions +" quickfix +" compiler/debugger invocation +" release vim-colortune plugin +" load layout automatically on start (pff) +" ConqueGDB Resize +" Do something about startup lag (because of YouCompleteMe) +" Do something about the input problems in ConqueGDB/Term (YouCompl?) +" implement a plugin for fast-reading (check if one exists first ;)) +" plugins on vim.org etc. +" syntastic! https://github.com/vim-syntastic/syntastic +" vimproc! https://github.com/Shougo/vimproc.vim +" pathogen / vundle DONE +" NerdTree DONE +" minibufexpl DONE +" fugitive DONE +" vim-sensible DONE +" taglist.vim +" snipMate +" c.vim +" autocomplpop +" surround +" perl-support +" matchit +" vimspell +" conqueshell +" fuzzyfinder +" Nerd Commenter +" tSkeleton +" grep +" cppcomplete +" colortest +" colour sampler pack +" gundo +" CScope / CCTree +" inline reference/ (stlrefvim?) +" emmet.io (webdev) +" }}} + +" {{{ VUNDLE +" As required by https://github.com/VundleVim/Vundle.vim +set nocompatible +filetype off +set rtp+=~/.vim/bundle/Vundle.vim +call vundle#begin() + +" Plugin 'Valloric/YouCompleteMe' +" Plugin 'Shougo/vimproc.vim' +" Plugin 'vim-scripts/Conque-GDB' +" Plugin 'dracula/vim' +" Plugin 'git://ex40.softwarefools.com/vim-potion.git' +" Plugin 'git://ex40.softwarefools.com/vim-colortune.git' +" Plugin 'terryma/vim-multiple-cursors' + +Plugin 'gmarik/Vundle.vim' + +Plugin 'scrooloose/nerdtree' +Plugin 'altercation/vim-colors-solarized' +Plugin 'fholgado/minibufexpl.vim' +Plugin 'majutsushi/tagbar' + +Plugin 'tpope/vim-fugitive' +Plugin 'tpope/vim-sensible' +Plugin 'tpope/vim-surround' + +Plugin 'MarcWeber/vim-addon-mw-utils' +Plugin 'tomtom/tlib_vim' + +Plugin 'garbas/vim-snipmate' +Plugin 'honza/vim-snippets' + +Plugin 'ndmitchell/ghcid', { 'rtp': 'plugins/nvim' } +Plugin 'neomake/neomake' +Plugin 'parsonsmatt/intero-neovim' +Plugin 'neovimhaskell/haskell-vim' +Plugin 'mileszs/ack.vim' + +call vundle#end() +filetype plugin indent on +" }}} + +"{{{ DISABLED +" limited .vimrc in current dir +" set exrc +" set secure + +" let g:ConqueGdb_Leader = '\' +" let g:ConqueTerm_CloseOnEnd = 1 + +" let g:potion_command = "/home/miguel/int/dev/potion/bin/potion" + +" set wrap +" set showbreak=>_ + +" move line under the cursor up and down. +" nnoremap <leader>- ddp +" nnoremap <leader>_ kddpk + +" abbreviations and typo correction +" iabbrev teh the +" set spell +" }}} + +" {{{ BASICS + +" {{{ mapleaders +" use <space> but remap to _ so it is visible for 'showcmd' +nmap <space> _ +let mapleader="\_" +let maplocalleader="\_" +" }}} + +" {{{ misc +set autoread +set foldmethod=marker +set nowrap +set backspace=2 +" set ruler +set showcmd +set number +set hidden + +"set cursorcolumn +set cursorline + +" save before making etc. +set autowrite + +" some nice candy +set laststatus=2 "always show status line on last window +set wildmenu + +" indent +" set autoindent +" set cindent + +" mouse support in xterm +set mouse=a + +"other +set previewheight=10 + +" http://robots.thoughtbot.com/vim-splits-move-faster-and-more-naturally +" set splitbelow +" set splitright + +" easy move between windows +nnoremap <C-J> <C-W><C-J> +nnoremap <C-K> <C-W><C-K> +nnoremap <C-L> <C-W><C-L> +nnoremap <C-H> <C-W><C-H> +" }}} + +" {{{ statusline +set statusline=%f " Path to the file +set statusline+=%m " modified flag +set statusline+=[%n] " buffer number +set statusline+=%= " Switch to the right side +set statusline+=%l,%c " Current line,column +set statusline+=\ (%L,%P) " Percentage +"set statusline& " reset +" }}} + +" {{{ terminal width / colorcolumn +" http://richarddingwall.name/2008/05/31/is-the-80-character-line-limit-still-relevant/ +" +" set tw=80 +" set tw=72 +" set tw=78 (for instance vims :help) +set tw=0 +set colorcolumn=73 +" }}} + +" {{{ tabs +set listchars=tab:>. +set tabstop=8 +set expandtab +set softtabstop=4 +set shiftwidth=4 +set shiftround +" }}} + +" {{{ folding +set foldcolumn=5 +set foldlevelstart=0 +" }}} + +" {{{ colorscheme / syntax highlight +syntax enable + +if has('gui_running') + set background=light +else + set background=dark +endif + +set background=dark + +colorscheme solarized + +hi SpellBad ctermfg=white +hi SpellBad ctermbg=red + +syntax sync fromstart +" }}} + +" {{{ minimal gui +" set guioptions= +set guioptions-=m +set guioptions-=T +set guioptions-=r +set guioptions-=L +set guifont=Monospace\ 9 +" }}} + +" {{{ search +set hlsearch +set incsearch +" }}} + +" {{{ match brackets +set showmatch +set matchtime=5 +" }}} +" }}} + +" {{{ KEY BINDINGS + +" temporary mappings, to get rid of bad habits. +" inoremap <esc> <nop> +" inoremap <Up> <nop> +" inoremap <Down> <nop> +" inoremap <Left> <nop> +" inoremap <Right> <nop> + +" map <F5> :silent make \| copen \| redraw!<CR> +" map <F5> :silent make \| redraw!<CR> +" map <F5> :make<CR> +" nnoremap <C-]> <C-]>:tselect<CR> +" nnoremap <leader>cc :call Colortune_fill()<cr> + +" make +" nnoremap <leader>mm :silent make!<cr> +" nnoremap <leader>mc :silent make! clean<cr> +" nnoremap <leader>mn :silent make! new<cr> +" nnoremap <leader>mr :silent make!<cr>:call system("make run &")<cr> +" nnoremap <leader>md :silent make!<cr>:call system("make debug &")<cr> +" nnoremap <leader>ms :silent make! stop<cr> +" nnoremap <leader>mf :silent make! %:r<cr>:redraw! <cr> +" nnoremap <leader>mx :silent make! %:r <bar> !./%:r<cr> +" +" session handling +" nnoremap <leader>ss :call Session_save()<cr> +" nnoremap <leader>sl :call Session_load()<cr> +" +" retab +" map <leader>rt :retab!<CR> + + +" activate 'very magic' for searches automatically +nnoremap / /\v +nnoremap ? ?\v + +" alt esc in insert mode +inoremap jk <esc> + +" toggle tabs visibility +noremap <leader>t :set invlist<CR> + +" easy editing and sourcing of vimrc +" nnoremap <leader>sv :source $MYVIMRC<cr> +nnoremap <leader>ev :e $MYVIMRC<cr> + +" turn off search highlight +nnoremap <leader>h :nohlsearch<cr> + +" toggle visibility of trailing whitespaces +nnoremap <leader>w :match ErrorMsg /\v +$/<cr> +nnoremap <leader>W :match<cr> + +" toggle and navigate quickfix window +nnoremap <leader>cn :cnext<cr> +nnoremap <leader>cp :cprevious<cr> +nnoremap <leader>cc :cc<cr> +nnoremap <leader>cq :copen<cr> +nnoremap <leader>cQ :cclose<cr> + +" buffer navigaion +nnoremap <leader>bn :MBEbn<cr> +nnoremap <leader>bp :MBEbp<cr> +nnoremap <leader>bd :MBEbd<cr> + +" layout +nnoremap <leader>ln :NERDTreeToggle<cr> +nnoremap <leader>lt :TagbarToggle<cr> +nnoremap <leader>lm :MBEToggle<cr> +"nnoremap <leader>lg :ConqueGdb<cr> + +" silver search +noremap <leader>a :Ack!<Space> + +" stylish-haskell +" noremap <leader>sh :!stylish-haskell + +" ctrl-space auto complete in insert mode +inoremap <C-Space> <C-N> + +" show list if multiple ctrl-] matches +nnoremap <C-]> g<C-]> +" }}} + +" {{{ FILETYPES +" {{{ custom highlight (twig) +augroup filetype_custom_highlight + autocmd! + au BufRead,BufNewFile *.twig set filetype=htmljinja +augroup END +" }}} + +" {{{ markdown +augroup filetype_markdown + autocmd! + "autocmd FileType markdown setlocal spell + "autocmd FileType markdown setlocal list +augroup END +" }}} + +" {{{ cpp +augroup filetype_cpp + autocmd! + autocmd FileType cpp nnoremap <buffer> <localleader>c I//<esc> + autocmd FileType cpp :iabbrev <buffer> iff if () <cr>{<cr>}jkF + autocmd FileType cpp nnoremap <buffer> <leader>bo :r ~/_int/dev/misc/c++/template/template.cpp<cr> +augroup END +" }}} + +" {{{ haskell +augroup filetype_haskell + autocmd! + autocmd FileType haskell setlocal formatprg=stylish-haskell + autocmd FileType haskell setlocal softtabstop=2 + autocmd FileType haskell setlocal shiftwidth=2 +" autocmd FileType haskell setlocal foldmethod=marker +" autocmd Filetype haskell map <F5> :w<ENTER>:term cabal -- exec runghc %<ENTER> +" autocmd Filetype haskell map <F5> :w<ENTER>:term make<ENTER> +" autocmd Filetype haskell map <F5> :w<ENTER>:term make<ENTER> +" autocmd FileType haskell setlocal expandtab +augroup END +" }}} +" }}} + +" ADDED AT WORK +if has ("nvim") +tnoremap <Esc> <C-\><C-n> +endif + +augroup interoMaps + au! + " Maps for intero. Restrict to Haskell buffers so the bindings don't collide. + + " Background process and window management + au FileType haskell nnoremap <silent> <leader>is :InteroStart<CR> + au FileType haskell nnoremap <silent> <leader>ik :InteroKill<CR> + au FileType haskell nnoremap <silent> <leader>ir :InteroReload<CR> + + " Open intero/GHCi split horizontally + au FileType haskell nnoremap <silent> <leader>io :InteroOpen<CR> + " Open intero/GHCi split vertically + au FileType haskell nnoremap <silent> <leader>iov :InteroOpen<CR><C-W>H + au FileType haskell nnoremap <silent> <leader>ih :InteroHide<CR> + + " Reloading (pick one) + " Automatically reload on save + " au BufWritePost *.hs InteroReload + " Manually save and reload + au FileType haskell nnoremap <silent> <leader>wr :w \| :InteroReload<CR> + + " Load individual modules + au FileType haskell nnoremap <silent> <leader>il :InteroLoadCurrentModule<CR> + au FileType haskell nnoremap <silent> <leader>if :InteroLoadCurrentFile<CR> + + " Type-related information + " Heads up! These next two differ from the rest. + au FileType haskell map <silent> <leader>t <Plug>InteroGenericType + au FileType haskell map <silent> <leader>T <Plug>InteroType + au FileType haskell nnoremap <silent> <leader>it :InteroTypeInsert<CR> + + " Navigation + au FileType haskell nnoremap <silent> <leader>jd :InteroGoToDef<CR> + + " Managing targets + " Prompts you to enter targets (no silent): + au FileType haskell nnoremap <leader>ist :InteroSetTargets<SPACE> +augroup END + +" Intero starts automatically. Set this if you'd like to prevent that. +let g:intero_start_immediately = 0 + +" Enable type information on hover (when holding cursor at point for ~1 second). +let g:intero_type_on_hover = 1 + +" Change the intero window size; default is 10. +let g:intero_window_size = 10 + +" Sets the intero window to split vertically; default is horizontal +let g:intero_vertical_split = 0 + +" disable neomake +let g:intero_use_neomake = 0 + +" OPTIONAL: Make the update time shorter, so the type info will trigger faster. +set updatetime=1000 + +"https://github.com/MarcWeber/hasktags/blob/assets/hasktags.vim +let g:tagbar_type_haskell = { + \ 'ctagsbin' : 'hasktags', + \ 'ctagsargs' : '-x -c -o-', + \ 'kinds' : [ + \ 'm:modules:0:1', + \ 'd:data:0:1', + \ 'd_gadt:data gadt:0:1', + \ 'nt:newtype:0:1', + \ 'c:classes:0:1', + \ 'i:instances:0:1', + \ 'cons:constructors:0:1', + \ 'c_gadt:constructor gadt:0:1', + \ 'c_a:constructor accessors:1:1', + \ 't:type names:0:1', + \ 'pt:pattern types:0:1', + \ 'pi:pattern implementations:0:1', + \ 'ft:function types:0:1', + \ 'fi:function implementations:0:1', + \ 'o:others:0:1' + \ ], + \ 'sro' : '.', + \ 'kind2scope' : { + \ 'm' : 'module', + \ 'd' : 'data', + \ 'd_gadt' : 'd_gadt', + \ 'c_gadt' : 'c_gadt', + \ 'nt' : 'newtype', + \ 'cons' : 'cons', + \ 'c_a' : 'accessor', + \ 'c' : 'class', + \ 'i' : 'instance' + \ }, + \ 'scope2kind' : { + \ 'module' : 'm', + \ 'data' : 'd', + \ 'newtype' : 'nt', + \ 'cons' : 'c_a', + \ 'd_gadt' : 'c_gadt', + \ 'class' : 'ft', + \ 'instance' : 'ft' + \ } +\ } + +" do not show minibuf +let g:miniBufExplorerAutoStart = 0 +let g:miniBufExplBRSplit = 0 "put above/left +let g:miniBufExplVSplit = 20 +let g:miniBufExplSplitToEdge = 0 +let g:miniBufExplMaxSize = 25 + +let g:intero_load_targets= ["twg:lib","twg:exe:twg"] + +let g:ghcid_keep_open = 0 + +" show trailing whitespace per default: +" match ErrorMsg /\v +$/ + +" let g:ackprg = 'ag --nogroup --nocolor --column' +let g:ackprg = 'ag --vimgrep' +let g:ackhighlight = 1 +" let g:ack_autoclose = 1 +" let g:ack_autofold_results = 1 +cnoreabbrev Ack Ack! + +let g:haskell_enable_quantification = 1 " to enable highlighting of `forall` +let g:haskell_enable_recursivedo = 1 " to enable highlighting of `mdo` and `rec` +let g:haskell_enable_arrowsyntax = 1 " to enable highlighting of `proc` +let g:haskell_enable_pattern_synonyms = 1 " to enable highlighting of `pattern` +let g:haskell_enable_typeroles = 1 " to enable highlighting of type roles +let g:haskell_enable_static_pointers = 1 " to enable highlighting of `static` +let g:haskell_backpack = 1 " to enable highlighting of backpack keywords +let g:intero_prompt_regex= ' >' +" let g:haskell_classic_highlighting = 1 + +let NERDTreeQuitOnOpen=1 +set ignorecase +set smartcase |
