diff --git a/sources_non_forked/Apprentice/LICENSE b/sources_non_forked/Apprentice/LICENSE new file mode 100644 index 00000000..0d48ccad --- /dev/null +++ b/sources_non_forked/Apprentice/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2016 Romain Lafourcade + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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/sources_non_forked/Apprentice/README.md b/sources_non_forked/Apprentice/README.md new file mode 100644 index 00000000..4ad48875 --- /dev/null +++ b/sources_non_forked/Apprentice/README.md @@ -0,0 +1,206 @@ +# ![Apprentice](http://romainl.github.io/Apprentice/images/logo.png) + +Apprentice is a dark, low-contrast colorscheme for Vim based on the awesome [Sorcerer](http://www.vim.org/scripts/script.php?script_id=3299) by Jeet Sukumaran. + +It is essentially a streamlined version of the original, with a reduced number of colors entirely taken from the default xterm palette to ensure a similar look in 256colors-ready terminal emulators and GUI Vim. + +Some code in MacVim: + +![image](http://romainl.github.io/Apprentice/images/0macvim.png) + +Some code in iTerm, with `TERM=xterm-256color`: + +![image](http://romainl.github.io/Apprentice/images/0256term.png) + +Some code in mintty, with `TERM=xterm-256color`: + +![image](http://romainl.github.io/Apprentice/images/0256mintty.png) + +Some code in iTerm, with `TERM=xterm`, using the Tango color palette: + +![image](http://romainl.github.io/Apprentice/images/08termtango.png) + +## Preparing your environment. + +Apprentice is designed first and foremost to look “good” in terminal emulators supporting 256 colors and in GUI Vim (GVim/MacVim). It supports lesser terminal emulators in the sense that it doesn’t break but it will definitely look “better” in more capable environments. + +### GVim/MacVim + +There is nothing to do for GVim/MacVim as GUI Vim supports “True Color” by default. + +### “True Color” terminal emulators + +Since January 2016, Vim has been able to talk in “True Color” to terminal emulators supporting that feature. This means that it is now not only possible but also very easy to have **the exact same colors** in TUI Vim and GUI Vim. + +In practice, this new development doesn't change much for Apprentice which uses the exact same colors in the GUI as it does in the TUI anyway. But you can still try “True Color” if your setup satisfies the requirements with the following command: + + :set termguicolors + +See [this gist](https://gist.github.com/XVilka/8346728) for more information and support status and, of course, `:help termguicolors`. + +### 256color-ready terminal emulators + +Most terminal emulators in use nowadays *can* display 256 colors but most of them use a default `TERM` that tells Vim otherwise. Assuming your terminal emulator actually supports 256 colors, you must instruct it to brag about its terminal-hood by setting the correct `TERM` environment variable. + +The “ideal” `TERM` usually includes the string `256color`, like `xterm-256color`. The actual value is highly dependent on your terminal emulator and/or your terminal multiplexer, though, so you will have to refer to their manual. + +### Working with 8/16 colors + +As an alternative to changing your default `TERM` to `xterm-256color` or similar, you can keep its default value (usually something like `xterm` or `screen`) and set your terminal emulator to use [the Apprentice colorscheme](https://github.com/romainl/iterm2-colorschemes#readme) instead of its default colors. + +The table below contains a subset of Apprentice’s palette. You can use a color picker or copy/paste these values: + +| Intensity | Normal | Intensity | Bright | +|------------------|--------------------------|------------------|--------------------------| +| 0 | `#1C1C1C` ![#1C1C1C][0] | 8 | `#444444` ![#444444][0] | +| 1 | `#AF5F5F` ![#AF5F5F][1] | 9 | `#FF8700` ![#FF8700][9] | +| 2 | `#5F875F` ![#5F875F][2] | 10 | `#87AF87` ![#87AF87][10] | +| 3 | `#87875F` ![#87875F][3] | 11 | `#FFFFAF` ![#FFFFAF][11] | +| 4 | `#5F87AF` ![#5F87AF][4] | 12 | `#8FAFD7` ![#8FAFD7][12] | +| 5 | `#5F5F87` ![#5F5F87][5] | 13 | `#8787AF` ![#8787AF][13] | +| 6 | `#5F8787` ![#5F8787][6] | 14 | `#5FAFAF` ![#5FAFAF][14] | +| 7 | `#6C6C6C` ![#6C6C6C][7] | 15 | `#FFFFFF` ![#FFFFFF][15] | +| Foreground color | `#BCBCBC` ![#BCBCBC][16] | Background color | `#262626` ![#262626][17] | + +Here is a sample `~/.Xresources` for you Linux/BSD users. You can import this into [terminal.sexy](http://terminal.sexy) to convert it to the appropriate color scheme format for your preferred terminal emulator: + + *.foreground: #BCBCBC + *.background: #262626 + *.color0: #1C1C1C + *.color8: #444444 + *.color1: #AF5F5F + *.color9: #FF8700 + *.color2: #5F875F + *.color10: #87AF87 + *.color3: #87875F + *.color11: #FFFFAF + *.color4: #5F87AF + *.color12: #8FAFD7 + *.color5: #5F5F87 + *.color13: #8787AF + *.color6: #5F8787 + *.color14: #5FAFAF + *.color7: #6C6C6C + *.color15: #FFFFFF + +And a sample `~/.minttyrc` for you Cygwin users: + + ForegroundColour=188,188,188 + BackgroundColour=38,38,38 + Black=28,28,28 + Red=175,95,95 + Green=95,135,95 + Yellow=135,135,95 + Blue=95,135,175 + Magenta=95,95,135 + Cyan=95,135,135 + White=108,108,108 + BoldBlack=68,68,68 + BoldRed=255,135,0 + BoldGreen=135,175,135 + BoldYellow=255,255,175 + BoldBlue=143,175,215 + BoldMagenta=135,135,175 + BoldCyan=95,175,175 + BoldWhite=255,255,255 + +Some code in iTerm, with `TERM=xterm`, using the color palette above: + +![image](http://romainl.github.io/Apprentice/images/08termapprentice.png) + +Some code in the Windows console, with `TERM=cygwin`, using the color palette above: + +![image](http://romainl.github.io/Apprentice/images/016console.png) + +### All terminal emulators + +I recommend to adjust your terminal's background color to the one used in Apprentice if you want to avoid having a “frame” around Vim: + +| Notation | Value | +|-------------|-----------------| +| xterm | `235` | +| hexadecimal | `#262626` | +| rgb | `rgb(38,38,38)` | + +## Installing Apprentice. + +Colorschemes must be placed in a directory named `colors` that is somewhere in Vim’s `runtimepath`: + +The canonical location is: + + ~/.vim/colors/apprentice.vim + +but it could be: + + ~/.vim/bundle/apprentice/colors/apprentice.vim + +or whatever works for you. + +Arch users may be happy to hear that Apprentice [has landed in AUR](https://aur.archlinux.org/packages/vim-apprentice/). To install it, use an AUR helper — `yaourt -S vim-apprentice` — or download the `PKGBUILD` and do `$ makepkg -i`. + +## Enabling Apprentice. + +To test Apprentice, just type this command from *normal* mode and hit `Enter`: + + :colorscheme apprentice + +If you like what you see and want to make Apprentice your default colorscheme, add this line to your `~/.vimrc`, preferably near the end, after any `syntax enable`, `syntax on`, `filetype ... on`, `call plug#end()`, or `call vundle#end()` line: + + colorscheme apprentice + +## Lightline and Airline themes + +I removed them from `master` but you can still find them in the "fancylines-and-neovim" branch. + +## Neovim terminal theme + +I removed it from `master` but you can still find it in the "fancylines-and-neovim" branch. + +## What they say about Apprentice. + +* Vimgor, in #vim: *“A colorscheme as subtle, gentle and pleasant as its creator isn't.”* + +* Gfixler, in [r/vim](http://www.reddit.com/r/vim/comments/2fws13/syntax_on/cke2ued): *“I've been enjoying Apprentice. It's the only color scheme so far that I haven't felt like modifying in any way.”* + +* dddbbb, in [r/vim](http://www.reddit.com/r/vim/comments/2fws13/syntax_on/ckekyg1): *“Haha, you've been quoted in the readme. romainl is still with us in spirit! Apprentice looks nice, and it's great that seems simple to get it working in terminal (no t_co hacks).”* + +* Gfixler again, in [r/vim](http://www.reddit.com/r/vim/comments/30dph9/solarizedlike_colorschemes/cprnfxm): *“My favorite color scheme by far is Apprentice, but again, it's completely subjective. Pick something that makes you feel good while using it. I particularly love Apprentice's selection blue color. I select things all the time just to experience it. So pretty.”* + +;-) + +## Derivative works + +If light colorschemes are more your thing, [Disciple](https://github.com/romainl/Disciple) is an experimental and mostly unmaintained negative version of Apprentice. + +On the same note, [Lightning](https://github.com/wimstefan/Lightning) is a light fork of Apprentice worth considering. + +[Intern](https://github.com/drzel/intern-hexchat-theme) is an [HexChat](https://hexchat.github.io/) theme based on Apprentice. + +[This very enthusiastic fellow](https://github.com/xHN35RQ) created [a home](https://github.com/xHN35RQ/apprentice-colorschemes) for terminal emulator themes adapted from Apprentice. + +A port of Apprentice is available for the IDEA platform. Check it out [over there.](https://github.com/jpeddicord/apprentice-idea) + +[Elysian](https://github.com/nhooyr/elysian.vim) is a new very nice colorscheme for 256color terminal emulators inspired by Apprentice. + +[apprentice-theme](https://github.com/sjas/apprentice-theme) is a port to spacemacs. + +Go team! + +[0]: http://romainl.github.io/Apprentice/images/1c1c1c.png +[1]: http://romainl.github.io/Apprentice/images/af5f5f.png +[2]: http://romainl.github.io/Apprentice/images/5f875f.png +[3]: http://romainl.github.io/Apprentice/images/87875f.png +[4]: http://romainl.github.io/Apprentice/images/5f87af.png +[5]: http://romainl.github.io/Apprentice/images/5f5f87.png +[6]: http://romainl.github.io/Apprentice/images/5f8787.png +[7]: http://romainl.github.io/Apprentice/images/6c6c6c.png +[8]: http://romainl.github.io/Apprentice/images/444444.png +[9]: http://romainl.github.io/Apprentice/images/ff8700.png +[10]: http://romainl.github.io/Apprentice/images/87af87.png +[11]: http://romainl.github.io/Apprentice/images/ffffaf.png +[12]: http://romainl.github.io/Apprentice/images/8fafd7.png +[13]: http://romainl.github.io/Apprentice/images/8787af.png +[14]: http://romainl.github.io/Apprentice/images/5fafaf.png +[15]: http://romainl.github.io/Apprentice/images/ffffff.png +[16]: http://romainl.github.io/Apprentice/images/bcbcbc.png +[17]: http://romainl.github.io/Apprentice/images/262626.png diff --git a/sources_non_forked/Apprentice/colors/apprentice.vim b/sources_non_forked/Apprentice/colors/apprentice.vim new file mode 100644 index 00000000..67ebcc38 --- /dev/null +++ b/sources_non_forked/Apprentice/colors/apprentice.vim @@ -0,0 +1,256 @@ +" 'apprentice.vim' -- Vim color scheme. +" Author: Romain Lafourcade (romainlafourcade@gmail.com) +" Description: Essentially a streamlining and conversion to xterm colors of +" 'sorcerer' by Jeet Sukumaran (jeetsukumaran@gmailcom) +" Last Change: 2017 Oct 07 + +" MADE-UP NAME HEX RGB XTERM ANSI +" ======================================================================== +" almost black #1c1c1c rgb(28, 28, 28) 234 0 +" darker grey #262626 rgb(38, 38, 38) 235 background color +" dark grey #303030 rgb(48, 48, 48) 236 8 +" grey #444444 rgb(68, 68, 68) 238 8 +" medium grey #585858 rgb(88, 88, 88) 240 8 +" light grey #6c6c6c rgb(108, 108, 108) 242 7 +" lighter grey #bcbcbc rgb(188, 188, 188) 250 foreground color +" white #ffffff rgb(255, 255, 255) 231 15 +" purple #5f5f87 rgb(95, 95, 135) 60 5 +" light purple #8787af rgb(135, 135, 175) 103 13 +" green #5f875f rgb(95, 135, 95) 65 2 +" light green #87af87 rgb(135, 175, 135) 108 10 +" aqua #5f8787 rgb(95, 135, 135) 66 6 +" light aqua #5fafaf rgb(95, 175, 175) 73 14 +" blue #5f87af rgb(95, 135, 175) 67 4 +" light blue #8fafd7 rgb(143, 175, 215) 110 12 +" red #af5f5f rgb(175, 95, 95) 131 1 +" orange #ff8700 rgb(255, 135, 0) 208 9 +" ocre #87875f rgb(135, 135, 95) 101 3 +" yellow #ffffaf rgb(255, 255, 175) 229 11 + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "apprentice" + +if ($TERM =~ '256' || &t_Co >= 256) || has("gui_running") + hi Normal ctermbg=235 ctermfg=250 guibg=#262626 guifg=#bcbcbc cterm=NONE gui=NONE + hi LineNr ctermbg=234 ctermfg=242 guibg=#1c1c1c guifg=#6c6c6c cterm=NONE gui=NONE + hi FoldColumn ctermbg=234 ctermfg=242 guibg=#1c1c1c guifg=#6c6c6c cterm=NONE gui=NONE + hi Folded ctermbg=234 ctermfg=242 guibg=#1c1c1c guifg=#6c6c6c cterm=NONE gui=NONE + hi MatchParen ctermbg=234 ctermfg=229 guibg=#1c1c1c guifg=#ffffaf cterm=NONE gui=NONE + hi signColumn ctermbg=234 ctermfg=242 guibg=#1c1c1c guifg=#6c6c6c cterm=NONE gui=NONE + + set background=dark + + hi Comment ctermbg=NONE ctermfg=240 guibg=NONE guifg=#585858 cterm=NONE gui=NONE + hi Conceal ctermbg=NONE ctermfg=250 guibg=NONE guifg=#bcbcbc cterm=NONE gui=NONE + hi Constant ctermbg=NONE ctermfg=208 guibg=NONE guifg=#ff8700 cterm=NONE gui=NONE + hi Error ctermbg=NONE ctermfg=131 guibg=NONE guifg=#af5f5f cterm=reverse gui=reverse + hi Identifier ctermbg=NONE ctermfg=67 guibg=NONE guifg=#5f87af cterm=NONE gui=NONE + hi Ignore ctermbg=NONE ctermfg=NONE guibg=NONE guifg=NONE cterm=NONE gui=NONE + hi PreProc ctermbg=NONE ctermfg=66 guibg=NONE guifg=#5f8787 cterm=NONE gui=NONE + hi Special ctermbg=NONE ctermfg=65 guibg=NONE guifg=#5f875f cterm=NONE gui=NONE + hi Statement ctermbg=NONE ctermfg=110 guibg=NONE guifg=#8fafd7 cterm=NONE gui=NONE + hi String ctermbg=NONE ctermfg=108 guibg=NONE guifg=#87af87 cterm=NONE gui=NONE + hi Todo ctermbg=NONE ctermfg=NONE guibg=NONE guifg=NONE cterm=reverse gui=reverse + hi Type ctermbg=NONE ctermfg=103 guibg=NONE guifg=#8787af cterm=NONE gui=NONE + hi Underlined ctermbg=NONE ctermfg=66 guibg=NONE guifg=#5f8787 cterm=underline gui=underline + + hi NonText ctermbg=NONE ctermfg=240 guibg=NONE guifg=#585858 cterm=NONE gui=NONE + + hi Pmenu ctermbg=238 ctermfg=250 guibg=#444444 guifg=#bcbcbc cterm=NONE gui=NONE + hi PmenuSbar ctermbg=240 ctermfg=NONE guibg=#585858 guifg=NONE cterm=NONE gui=NONE + hi PmenuSel ctermbg=66 ctermfg=235 guibg=#5f8787 guifg=#262626 cterm=NONE gui=NONE + hi PmenuThumb ctermbg=66 ctermfg=66 guibg=#5f8787 guifg=#5f8787 cterm=NONE gui=NONE + + hi ErrorMsg ctermbg=131 ctermfg=235 guibg=#af5f5f guifg=#262626 cterm=NONE gui=NONE + hi ModeMsg ctermbg=108 ctermfg=235 guibg=#87af87 guifg=#262626 cterm=NONE gui=NONE + hi MoreMsg ctermbg=NONE ctermfg=66 guibg=NONE guifg=#5f8787 cterm=NONE gui=NONE + hi Question ctermbg=NONE ctermfg=108 guibg=NONE guifg=#87af87 cterm=NONE gui=NONE + hi WarningMsg ctermbg=NONE ctermfg=131 guibg=NONE guifg=#af5f5f cterm=NONE gui=NONE + + hi TabLine ctermbg=238 ctermfg=101 guibg=#444444 guifg=#87875f cterm=NONE gui=NONE + hi TabLineFill ctermbg=238 ctermfg=238 guibg=#444444 guifg=#444444 cterm=NONE gui=NONE + hi TabLineSel ctermbg=101 ctermfg=235 guibg=#87875f guifg=#262626 cterm=NONE gui=NONE + + hi Cursor ctermbg=242 ctermfg=NONE guibg=#6c6c6c guifg=NONE cterm=NONE gui=NONE + hi CursorColumn ctermbg=236 ctermfg=NONE guibg=#303030 guifg=NONE cterm=NONE gui=NONE + hi CursorLineNr ctermbg=236 ctermfg=73 guibg=#303030 guifg=#5fafaf cterm=NONE gui=NONE + hi CursorLine ctermbg=236 ctermfg=NONE guibg=#303030 guifg=NONE cterm=NONE gui=NONE + + hi helpLeadBlank ctermbg=NONE ctermfg=NONE guibg=NONE guifg=NONE cterm=NONE gui=NONE + hi helpNormal ctermbg=NONE ctermfg=NONE guibg=NONE guifg=NONE cterm=NONE gui=NONE + + hi StatusLine ctermbg=101 ctermfg=235 guibg=#87875f guifg=#262626 cterm=NONE gui=NONE + hi StatusLineNC ctermbg=238 ctermfg=101 guibg=#444444 guifg=#87875f cterm=NONE gui=NONE + + hi Visual ctermbg=235 ctermfg=110 guibg=#262626 guifg=#8fafd7 cterm=reverse gui=reverse + hi VisualNOS ctermbg=NONE ctermfg=NONE guibg=NONE guifg=NONE cterm=underline gui=underline + + hi VertSplit ctermbg=238 ctermfg=238 guibg=#444444 guifg=#444444 cterm=NONE gui=NONE + hi WildMenu ctermbg=110 ctermfg=235 guibg=#8fafd7 guifg=#262626 cterm=NONE gui=NONE + + hi Function ctermbg=NONE ctermfg=229 guibg=NONE guifg=#ffffaf cterm=NONE gui=NONE + hi SpecialKey ctermbg=NONE ctermfg=240 guibg=NONE guifg=#585858 cterm=NONE gui=NONE + hi Title ctermbg=NONE ctermfg=231 guibg=NONE guifg=#ffffff cterm=NONE gui=NONE + + hi DiffAdd ctermbg=235 ctermfg=108 guibg=#262626 guifg=#87af87 cterm=reverse gui=reverse + hi DiffChange ctermbg=235 ctermfg=103 guibg=#262626 guifg=#8787af cterm=reverse gui=reverse + hi DiffDelete ctermbg=235 ctermfg=131 guibg=#262626 guifg=#af5f5f cterm=reverse gui=reverse + hi DiffText ctermbg=235 ctermfg=208 guibg=#262626 guifg=#ff8700 cterm=reverse gui=reverse + + hi IncSearch ctermbg=131 ctermfg=235 guibg=#af5f5f guifg=#262626 cterm=NONE gui=NONE + hi Search ctermbg=229 ctermfg=235 guibg=#ffffaf guifg=#262626 cterm=NONE gui=NONE + + hi Directory ctermbg=NONE ctermfg=73 guibg=NONE guifg=#5fafaf cterm=NONE gui=NONE + + hi debugPC ctermbg=67 guibg=#5f87af + hi debugBreakpoint ctermbg=131 guibg=#af5f5f + + if has("gui_running") + hi SpellBad ctermbg=NONE ctermfg=131 guibg=NONE guifg=NONE cterm=undercurl gui=undercurl guisp=#af5f5f + hi SpellCap ctermbg=NONE ctermfg=73 guibg=NONE guifg=NONE cterm=undercurl gui=undercurl guisp=#5fafaf + hi SpellLocal ctermbg=NONE ctermfg=65 guibg=NONE guifg=NONE cterm=undercurl gui=undercurl guisp=#5f875f + hi SpellRare ctermbg=NONE ctermfg=208 guibg=NONE guifg=NONE cterm=undercurl gui=undercurl guisp=#ff8700 + else + hi SpellBad ctermbg=NONE ctermfg=131 guibg=NONE guifg=#af5f5f cterm=undercurl gui=undercurl guisp=NONE + hi SpellCap ctermbg=NONE ctermfg=73 guibg=NONE guifg=#5fafaf cterm=undercurl gui=undercurl guisp=NONE + hi SpellLocal ctermbg=NONE ctermfg=65 guibg=NONE guifg=#5f875f cterm=undercurl gui=undercurl guisp=NONE + hi SpellRare ctermbg=NONE ctermfg=208 guibg=NONE guifg=#ff8700 cterm=undercurl gui=undercurl guisp=NONE + endif + + hi ColorColumn ctermbg=234 ctermfg=NONE guibg=#1c1c1c guifg=NONE cterm=NONE gui=NONE +elseif &t_Co == 8 || $TERM !~# '^linux' || &t_Co == 16 + set t_Co=16 + + hi Normal ctermbg=NONE ctermfg=white cterm=NONE + + set background=dark + + hi Comment ctermbg=NONE ctermfg=gray cterm=NONE + hi Conceal ctermbg=NONE ctermfg=white cterm=NONE + hi Constant ctermbg=NONE ctermfg=red cterm=NONE + hi Function ctermbg=NONE ctermfg=yellow cterm=NONE + hi Identifier ctermbg=NONE ctermfg=darkblue cterm=NONE + hi PreProc ctermbg=NONE ctermfg=darkcyan cterm=NONE + hi Special ctermbg=NONE ctermfg=darkgreen cterm=NONE + hi Statement ctermbg=NONE ctermfg=blue cterm=NONE + hi String ctermbg=NONE ctermfg=green cterm=NONE + hi Todo ctermbg=NONE ctermfg=NONE cterm=reverse + hi Type ctermbg=NONE ctermfg=magenta cterm=NONE + + hi Error ctermbg=NONE ctermfg=darkred cterm=reverse + hi Ignore ctermbg=NONE ctermfg=NONE cterm=NONE + hi Underlined ctermbg=NONE ctermfg=NONE cterm=reverse + + hi LineNr ctermbg=black ctermfg=gray cterm=NONE + hi NonText ctermbg=NONE ctermfg=darkgray cterm=NONE + + hi Pmenu ctermbg=darkgray ctermfg=white cterm=NONE + hi PmenuSbar ctermbg=gray ctermfg=NONE cterm=NONE + hi PmenuSel ctermbg=darkcyan ctermfg=black cterm=NONE + hi PmenuThumb ctermbg=darkcyan ctermfg=NONE cterm=NONE + + hi ErrorMsg ctermbg=darkred ctermfg=black cterm=NONE + hi ModeMsg ctermbg=darkgreen ctermfg=black cterm=NONE + hi MoreMsg ctermbg=NONE ctermfg=darkcyan cterm=NONE + hi Question ctermbg=NONE ctermfg=green cterm=NONE + hi WarningMsg ctermbg=NONE ctermfg=darkred cterm=NONE + + hi TabLine ctermbg=darkgray ctermfg=darkyellow cterm=NONE + hi TabLineFill ctermbg=darkgray ctermfg=black cterm=NONE + hi TabLineSel ctermbg=darkyellow ctermfg=black cterm=NONE + + hi Cursor ctermbg=NONE ctermfg=NONE cterm=NONE + hi CursorColumn ctermbg=darkgray ctermfg=NONE cterm=NONE + hi CursorLineNr ctermbg=black ctermfg=cyan cterm=NONE + hi CursorLine ctermbg=darkgray ctermfg=NONE cterm=NONE + + hi helpLeadBlank ctermbg=NONE ctermfg=NONE cterm=NONE + hi helpNormal ctermbg=NONE ctermfg=NONE cterm=NONE + + hi StatusLine ctermbg=darkyellow ctermfg=black cterm=NONE + hi StatusLineNC ctermbg=darkgray ctermfg=darkyellow cterm=NONE + + hi Visual ctermbg=black ctermfg=blue cterm=reverse + hi VisualNOS ctermbg=black ctermfg=white cterm=reverse + + hi FoldColumn ctermbg=black ctermfg=darkgray cterm=NONE + hi Folded ctermbg=black ctermfg=darkgray cterm=NONE + + hi VertSplit ctermbg=darkgray ctermfg=darkgray cterm=NONE + hi WildMenu ctermbg=blue ctermfg=black cterm=NONE + + hi SpecialKey ctermbg=NONE ctermfg=darkgray cterm=NONE + hi Title ctermbg=NONE ctermfg=white cterm=NONE + + hi DiffAdd ctermbg=black ctermfg=green cterm=reverse + hi DiffChange ctermbg=black ctermfg=magenta cterm=reverse + hi DiffDelete ctermbg=black ctermfg=darkred cterm=reverse + hi DiffText ctermbg=black ctermfg=red cterm=reverse + + hi IncSearch ctermbg=darkred ctermfg=black cterm=NONE + hi Search ctermbg=yellow ctermfg=black cterm=NONE + + hi Directory ctermbg=NONE ctermfg=cyan cterm=NONE + hi MatchParen ctermbg=black ctermfg=yellow cterm=NONE + + hi SpellBad ctermbg=NONE ctermfg=darkred cterm=undercurl + hi SpellCap ctermbg=NONE ctermfg=darkyellow cterm=undercurl + hi SpellLocal ctermbg=NONE ctermfg=darkgreen cterm=undercurl + hi SpellRare ctermbg=NONE ctermfg=darkmagenta cterm=undercurl + + hi ColorColumn ctermbg=black ctermfg=NONE cterm=NONE + hi SignColumn ctermbg=black ctermfg=darkgray cterm=NONE +endif + +hi link Boolean Constant +hi link Character Constant +hi link Conditional Statement +hi link Debug Special +hi link Define PreProc +hi link Delimiter Special +hi link Exception Statement +hi link Float Number +hi link HelpCommand Statement +hi link HelpExample Statement +hi link Include PreProc +hi link Keyword Statement +hi link Label Statement +hi link Macro PreProc +hi link Number Constant +hi link Operator Statement +hi link PreCondit PreProc +hi link Repeat Statement +hi link SpecialChar Special +hi link SpecialComment Special +hi link StorageClass Type +hi link Structure Type +hi link Tag Special +hi link Typedef Type + +hi link htmlEndTag htmlTagName +hi link htmlLink Function +hi link htmlSpecialTagName htmlTagName +hi link htmlTag htmlTagName +hi link htmlBold Normal +hi link htmlItalic Normal +hi link xmlTag Statement +hi link xmlTagName Statement +hi link xmlEndTag Statement + +hi link markdownItalic Preproc +hi link asciidocQuotedEmphasized Preproc + +hi link diffBDiffer WarningMsg +hi link diffCommon WarningMsg +hi link diffDiffer WarningMsg +hi link diffIdentical WarningMsg +hi link diffIsA WarningMsg +hi link diffNoEOL WarningMsg +hi link diffOnly WarningMsg +hi link diffRemoved WarningMsg +hi link diffAdded String diff --git a/sources_non_forked/vim-drake-syntax/.gitignore b/sources_non_forked/vim-drake-syntax/.gitignore new file mode 100644 index 00000000..8f8411ce --- /dev/null +++ b/sources_non_forked/vim-drake-syntax/.gitignore @@ -0,0 +1,5 @@ +.DS_Store +*.orig +*.bak +*.log +*.diff diff --git a/sources_non_forked/vim-drake-syntax/README.md b/sources_non_forked/vim-drake-syntax/README.md new file mode 100644 index 00000000..d68ce605 --- /dev/null +++ b/sources_non_forked/vim-drake-syntax/README.md @@ -0,0 +1,21 @@ +# vim-drake-syntax + +Basic Vim syntax for [drake](https://github.com/Factual/drake). + +## Installing + +Firstly, set up [pathogen](https://github.com/tpope/vim-pathogen) for Vim. + +Then check out this project inside `~/.vim/bundle`: + +```bash +mkdir -p ~/.vim/bundle +cd ~/.vim/bundle +git clone https://bitbucket.org/larsyencken/vim-drake-syntax.git +``` + +Syntax highlighting will then work when you open a Drakefile (or `workflow.d` file). + +## Issues + +If you find a problem with the syntax highlighting, please come up with a code snippet showing the problem and [file an issue](https://bitbucket.org/larsyencken/vim-drake-syntax/issues/new). Patches are also most welcome. diff --git a/sources_non_forked/vim-drake-syntax/ftdetect/drake.vim b/sources_non_forked/vim-drake-syntax/ftdetect/drake.vim new file mode 100644 index 00000000..c87cb1b8 --- /dev/null +++ b/sources_non_forked/vim-drake-syntax/ftdetect/drake.vim @@ -0,0 +1 @@ +au BufNewFile,BufRead workflow.d,Drakefile set filetype=drake syntax=drake diff --git a/sources_non_forked/vim-drake-syntax/syntax/drake.vim b/sources_non_forked/vim-drake-syntax/syntax/drake.vim new file mode 100644 index 00000000..1e5c1d43 --- /dev/null +++ b/sources_non_forked/vim-drake-syntax/syntax/drake.vim @@ -0,0 +1,93 @@ +" +" Vim syntax file for drake +" Language: drake +" Maintainer: Lars Yencken +" Latest Revision: 2013-01-31 +" + +if exists("b:current_syntax") + finish +endif + +let b:current_syntax = '' +unlet b:current_syntax +syn include @Shell syntax/sh.vim + +let b:current_syntax = '' +unlet b:current_syntax +syn include @Python syntax/python.vim + +let b:current_syntax = '' +unlet b:current_syntax +syn include @Ruby syntax/ruby.vim + +let b:current_syntax = '' +unlet b:current_syntax +syn include @Clojure syntax/clojure.vim + +let b:current_syntax = '' +unlet b:current_syntax +syn include @R syntax/r.vim + + +" Comments +syn match drakeComment ";.*$" contains=drakeTodo + +" Variable definitions +syn match drakeSetVariable "^[a-zA-Z-_][a-zA-Z-_]*=[^,]*$" contains=drakeVariable +syn match drakeVariable "^[a-zA-Z-_][a-zA-Z-_]*" contained nextgroup=drakeSetIdentifier containedin=drakeVariable +syn match drakeSetIdentifier "=" nextgroup=drakeSetValue +syn match drakeSetValue ".*$" contained contains=drakeString +syn match drakeString "[^ ,]*" contained contains=drakeVariableRef containedin=drakeSetValue + +" Method blocks +syn region drakeMethodBlock start="^[a-zA-Z-][a-zA-Z0-9-]*()" end="^$" contains=drakeMethodSignature +syn match drakeMethodSignature "^[a-zA-Z-][a-zA-Z0-9-]*" contained nextgroup=drakeMethodBraces +syn match drakeMethodBraces "()" contained nextgroup=drakeDefaultShBlock,drakeShBlock,drakePyBlock + +" Variable references in strings +syn region drakeVariableRef matchgroup=VarBraces start='\$\[' end='\]' contained containedin=drakeString contains=drakeVariableName +syn match drakeVariableName "[a-zA-Z-_][a-zA-Z-_]*" contained containedin=drakeVariableRef + +" Rule blocks +syn region drakeBlock start="[^<;, ][^<;, ]*\(, [^<;, ][^<;, ]*\)* <-" end="^$" contains=drakeRule +syn match drakeRule "[^<;, ].* <-\( [^[<; ][^<; ]*\)*" contains=drakeTargets nextgroup=drakeDefaultShBlock,drakeShBlock,drakePyBlock +syn match drakeTargets "[^<;, ][^<;, ]*\(, [^<;, ][^<;, ]*\)*" contained nextgroup=drakeRuleIdentifier contains=drakeString,drakeSourceSep +syn match drakeSources "\( ,?[^<[;, ][^<;, ]*\)*" contained contains=drakeString,drakeSourceSep +syn match drakeRuleIdentifier " <-" contained nextgroup=drakeSources +syn match drakeTargetSep ", " contained containedin=drakeTargets +syn match drakeSourceSep ", " contained containedin=drakeSources + +" Todos in comments +syn keyword drakeTodo contained TODO NOTE FIXME XXX + +hi link drakeComment Comment +hi link drakeTodo Todo +hi link drakeVariable Identifier +hi link drakeSetIdentifier Delimiter +hi link drakeRuleIdentifier Delimiter +hi link drakeString String +hi link drakeVariableName Identifier +hi link VarBraces SpecialComment +hi link drakeTargetSep Delimiter +hi link drakeSourceSep Delimiter + +" Embedded shell region in block +syn region drakeDefaultShBlock matchgroup=Snip start='^[ \t][ \t]*' end='^$' containedin=drakeBlock,drakeMethodBlock contains=@Shell +syn region drakeShBlock matchgroup=Snip start=' \[shell\]$' end='^$' containedin=drakeBlock,drakeMethodBlock contains=@Shell +syn region drakePyBlock matchgroup=Snip start=' \[python\]$' end='^$' containedin=drakeBlock,drakeMethodBlock contains=@Python +syn region drakePyBlock matchgroup=Snip start=' \[ruby\]$' end='^$' containedin=drakeBlock,drakeMethodBlock contains=@Ruby +syn region drakePyBlock matchgroup=Snip start=' \[clojure\]$' end='^$' containedin=drakeBlock,drakeMethodBlock contains=@Clojure +syn region drakePyBlock matchgroup=Snip start=' \[R\]$' end='^$' containedin=drakeBlock,drakeMethodBlock contains=@R + + +" Embedded shell regions in strings +syn region shellBrackets matchgroup=SnipBraces start='\$(' end=')' containedin=drakeString contains=@Shell + +hi link Snip SpecialComment +hi link SnipBraces SpecialComment +hi link drakeVariableRef Identifier +hi link drakeMethodSignature Identifier +hi link drakeMethodBraces SpecialComment + +let b:current_syntax = 'drake' diff --git a/sources_non_forked/vim-scala/.gitignore b/sources_non_forked/vim-scala/.gitignore new file mode 100644 index 00000000..01716d21 --- /dev/null +++ b/sources_non_forked/vim-scala/.gitignore @@ -0,0 +1,6 @@ +# Ignore Vim tag files +tags + +# Ignore Vim swap files +.*.swp +.*.swo diff --git a/sources_non_forked/vim-scala/.travis.yml b/sources_non_forked/vim-scala/.travis.yml new file mode 100644 index 00000000..c1ac6c55 --- /dev/null +++ b/sources_non_forked/vim-scala/.travis.yml @@ -0,0 +1,11 @@ +language: ruby +rvm: + - 1.9.3 +before_install: sudo apt-get install vim-gtk +before_script: + - "export DISPLAY=:99.0" + - "sh -e /etc/init.d/xvfb start" +notifications: + email: + on_success: never + on_failure: change diff --git a/sources_non_forked/vim-scala/Gemfile b/sources_non_forked/vim-scala/Gemfile new file mode 100644 index 00000000..414fd039 --- /dev/null +++ b/sources_non_forked/vim-scala/Gemfile @@ -0,0 +1,5 @@ +source 'https://rubygems.org' +gem 'vimrunner', '0.3.0' +gem 'rake', '10.0.4' +gem 'rspec', '~> 2.13.0' + diff --git a/sources_non_forked/vim-scala/Gemfile.lock b/sources_non_forked/vim-scala/Gemfile.lock new file mode 100644 index 00000000..ea5528e2 --- /dev/null +++ b/sources_non_forked/vim-scala/Gemfile.lock @@ -0,0 +1,20 @@ +GEM + remote: https://rubygems.org/ + specs: + diff-lcs (1.1.3) + rake (0.9.2.2) + rspec (2.9.0) + rspec-core (~> 2.9.0) + rspec-expectations (~> 2.9.0) + rspec-mocks (~> 2.9.0) + rspec-core (2.9.0) + rspec-expectations (2.9.1) + diff-lcs (~> 1.1.3) + rspec-mocks (2.9.0) + +PLATFORMS + ruby + +DEPENDENCIES + rake + rspec diff --git a/sources_non_forked/vim-scala/LICENSE.TXT b/sources_non_forked/vim-scala/LICENSE.TXT new file mode 100644 index 00000000..66b0c460 --- /dev/null +++ b/sources_non_forked/vim-scala/LICENSE.TXT @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright {yyyy} {name of copyright owner} + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/sources_non_forked/vim-scala/README.md b/sources_non_forked/vim-scala/README.md new file mode 100644 index 00000000..bfc5bc3f --- /dev/null +++ b/sources_non_forked/vim-scala/README.md @@ -0,0 +1,63 @@ +vim-scala +========= + +This is a "bundle" for Vim that builds off of the initial Scala plugin modules +by Stefan Matthias Aust and adds some more "stuff" that I find useful, including +all of my notes and customizations. + +## Installation + +You really should be using Tim Pope's [Pathogen](https://github.com/tpope/vim-pathogen) module for Vim (http://tammersaleh.com/posts/the-modern-vim-config-with-pathogen) if you're going to clone this repository because, well... you should. + +### Using the command-line + +Using wget: + +```mkdir -p ~/.vim/{ftdetect,indent,syntax} && for d in ftdetect indent syntax ; do wget -O ~/.vim/$d/scala.vim https://raw.githubusercontent.com/derekwyatt/vim-scala/master/$d/scala.vim; done``` + +Using cURL: + +```mkdir -p ~/.vim/{ftdetect,indent,syntax} && for d in ftdetect indent syntax ; do curl -o ~/.vim/$d/scala.vim https://raw.githubusercontent.com/derekwyatt/vim-scala/master/$d/scala.vim; done``` + +### Vundle +Alternatively, you can use [Vundle](https://github.com/gmarik/vundle) to +manage your plugins. + +If you have Vundle installed, simply add the following to your .vimrc: + +```vim +Plugin 'derekwyatt/vim-scala' +``` + +and then run + +```vim +:PluginInstall +``` + +to install it. + +## Sorting of import statements + :SortScalaImports + +There are different modes for import sorting available. For details, please +consult the vimdoc help with + + :help :SortScalaImports + +## Scaladoc comment indentation + +By default, the plugin indents documentation comments according to the standard +Javadoc format + + /** + * This is a doc comment using Javadoc-style indentation. + */ + +To enable the indentation standard as recommended for Scaladoc comments (from +http://docs.scala-lang.org/style/scaladoc.html, since Scaladoc2), add the +command ``let g:scala_scaladoc_indent = 1`` to .vimrc file, e.g: + + /** This is a Scaladoc comment using the recommended indentation. + * let g:scala_scaladoc_indent = 1 + */ diff --git a/sources_non_forked/vim-scala/Rakefile b/sources_non_forked/vim-scala/Rakefile new file mode 100644 index 00000000..7c845627 --- /dev/null +++ b/sources_non_forked/vim-scala/Rakefile @@ -0,0 +1,6 @@ +require 'rspec/core/rake_task' + +RSpec::Core::RakeTask.new + +task :test => :spec +task :default => :spec diff --git a/sources_non_forked/vim-scala/after/syntax/help.vim b/sources_non_forked/vim-scala/after/syntax/help.vim new file mode 100644 index 00000000..e3232128 --- /dev/null +++ b/sources_non_forked/vim-scala/after/syntax/help.vim @@ -0,0 +1,14 @@ +" Extends standard help syntax with highlighting of Scala code. +" +" Place code between !sc! and !/sc! delimiters. These will be hidden if Vim is +" built with conceal support. + +unlet! b:current_syntax + +syntax include @ScalaCode syntax/scala.vim + +if has('conceal') + syntax region rgnScala matchgroup=Ignore concealends start='!sc!' end='!/sc!' contains=@ScalaCode +else + syntax region rgnScala matchgroup=Ignore start='!sc!' end='!/sc!' contains=@ScalaCode +endif diff --git a/sources_non_forked/vim-scala/compiler/sbt.vim b/sources_non_forked/vim-scala/compiler/sbt.vim new file mode 100644 index 00000000..4c621922 --- /dev/null +++ b/sources_non_forked/vim-scala/compiler/sbt.vim @@ -0,0 +1,30 @@ +" Vim compiler file +" Language: Scala SBT (http://www.scala-sbt.org/) +" Maintainer: Derek Wyatt +" URL: https://github.com/derekwyatt/vim-scala +" License: Apache 2 +" ---------------------------------------------------------------------------- + +if exists('current_compiler') + finish +endif +let current_compiler = 'sbt' + +if exists(':CompilerSet') != 2 " older Vim always used :setlocal + command -nargs=* CompilerSet setlocal +endif + +let s:cpo_save = &cpo +set cpo-=C + +CompilerSet makeprg=sbt\ -Dsbt.log.noformat=true\ compile + +CompilerSet errorformat= + \%E\ %#[error]\ %f:%l:\ %m,%C\ %#[error]\ %p^,%-C%.%#,%Z, + \%W\ %#[warn]\ %f:%l:\ %m,%C\ %#[warn]\ %p^,%-C%.%#,%Z, + \%-G%.%# + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim:set sw=2 sts=2 ts=8 et: diff --git a/sources_non_forked/vim-scala/ctags/scala.ctags b/sources_non_forked/vim-scala/ctags/scala.ctags new file mode 100644 index 00000000..b7d31250 --- /dev/null +++ b/sources_non_forked/vim-scala/ctags/scala.ctags @@ -0,0 +1,13 @@ +--langdef=scala +--langmap=scala:.scala + +--regex-scala=/^[ \t]*((abstract|final|sealed|implicit|lazy)[ \t]*)*(private[^ ]*|protected)?[ \t]*class[ \t]+([a-zA-Z0-9_]+)/\4/c,classes/ +--regex-scala=/^[ \t]*((abstract|final|sealed|implicit|lazy)[ \t]*)*(private[^ ]*|protected)?[ \t]*object[ \t]+([a-zA-Z0-9_]+)/\4/o,objects/ +--regex-scala=/^[ \t]*((abstract|final|sealed|implicit|lazy)[ \t]*)*(private[^ ]*|protected)?[ \t]*((abstract|final|sealed|implicit|lazy)[ \t ]*)*case class[ \t ]+([a-zA-Z0-9_]+)/\6/C,case classes/ +--regex-scala=/^[ \t]*((abstract|final|sealed|implicit|lazy)[ \t]*)*(private[^ ]*|protected)?[ \t]*case object[ \t]+([a-zA-Z0-9_]+)/\4/O,case objects/ +--regex-scala=/^[ \t]*((abstract|final|sealed|implicit|lazy)[ \t]*)*(private[^ ]*|protected)?[ \t]*trait[ \t]+([a-zA-Z0-9_]+)/\4/t,traits/ +--regex-scala=/^[ \t]*type[ \t]+([a-zA-Z0-9_]+)/\1/T,types/ +--regex-scala=/^[ \t]*((abstract|final|sealed|implicit|lazy|override|private[^ ]*(\[[a-z]*\])*|protected)[ \t]*)*def[ \t]+([a-zA-Z0-9_]+)/\4/m,methods/ +--regex-scala=/^[ \t]*((abstract|final|sealed|implicit|lazy|override|private[^ ]*|protected)[ \t]*)*val[ \t]+([a-zA-Z0-9_]+)/\3/V,values/ +--regex-scala=/^[ \t]*((abstract|final|sealed|implicit|lazy|override|private[^ ]*|protected)[ \t]*)*var[ \t]+([a-zA-Z0-9_]+)/\3/v,variables/ +--regex-scala=/^[ \t]*package[ \t]+([a-zA-Z0-9_.]+)/\1/p,packages/ diff --git a/sources_non_forked/vim-scala/doc/scala.txt b/sources_non_forked/vim-scala/doc/scala.txt new file mode 100644 index 00000000..ebc2e68d --- /dev/null +++ b/sources_non_forked/vim-scala/doc/scala.txt @@ -0,0 +1,133 @@ +*scala.txt* Syntax highlighting and helper functions for the Scala language. + +This plugin is only available if 'compatible' is not set. +{Vi does not have any of this} + +============================================================================== +INTRODUCTION *scala* + +Syntax highlighting and helper functions for the scala language. Extras +include: + + - Sorting of import statements, configurable to your conventions. + - Tagbar support to navigate definitions within a file in the plugin's + sidebar window. + - ...and probably more that we've forgotten to update in this doc. + +============================================================================== +OPTIONS *scala-options* + +Use these options to control behavior of the plugin. Default values are +indicated in the examples. + + *'g:scala_use_builtin_tagbar_defs'* +If you are using the Tagbar Vim plugin, vim-scala includes a Tagbar type +definition and ctags definition for Scala, so you can use Tagbar immediately. +If you have your own ctags definition in `~/.ctags` and prefer to use it, set +this option to 0 (we would appreciate contributions if you've improved the +ctags definition!). + +Note that Tagbar's ctags definition for Scala is not used to generate a +|tags| file that Vim can use to navigate to definitions in other files, only +for the plugin sidebar. Feel free to copy `vim-scala/ctags/scala.ctags` into +your own `~/.ctags` if you wish to generate |tags| files. +> + let g:scala_use_builtin_tagbar_defs = 1 +< + *'g:scala_use_default_keymappings'* +Set this option to disable definition of all mappings provided by vim-scala. +See |scala-mappings|. +> + let g:scala_use_default_keymappings = 1 +< + + *'g:scala_scaladoc_indent'* +By default, the plugin indents documentation comments according to the +standard Javadoc format. + /** + * This is a doc comment using Javadoc-style indentation. + */ +Set this option to enable the indentation standard as recommended for Scaladoc +comments. + /** This is a Scaladoc comment using + * the recommended indentation. + */ +> + let g:scala_scaladoc_indent = 1 +< + +============================================================================== +COMMANDS *scala-commands* + + *:SortScalaImports* +:SortScalaImports There are two modes in which this command can operate. + By default it walks all import groups at the top of + the Scala file and orders their lines alphabetically. + A group is a series of lines starting with the + import keyword separated by one or more blank lines. + + The second, more advanced mode, can be activated by + setting + + let g:scala_sort_across_groups=1 + + This makes this command include all imports in the + sorting regardless of blank lines in between them and + puts them in three predefined groups instead. + The three groups in which the imports can fall are: + + 1. Scala and Java core + 2. Third party libraries + 3. First party code (ie. your own) + + Java and Scala core imports are identified by the + java(x) and scala namespaces. + Everything else that isn't a first party namespace + will be a third party import. + You can define a regex that matches first party + namespaces by setting + + g:scala_first_party_namespaces + + For example in a standard Play app this would be + set to + g:scala_first_party_namespaces= + \ '\(controllers\|views\|models\)' + +============================================================================== +MAPPINGS *scala-mappings* + +Currently the only mappings defined are for FuzzyFinder users--these will +only be enabled if FuzzyFinder is detected. + + *scala-leader-fs* +fs "Find src". Primes |:FufFile| with `src/main/scala`, + and goes deeper still if only a single directory + exists below that. Helpful for package namespacing + like `src/main/scala/com/myorg`. + + *scala-leader-ft* +ft "Find test". Like |scala-leader-fs|, but with + `src/test/scala`. + + *scala-leader-fr* +fr "Find from root". For the rarer cases when you want to + start FuzzyFinder at project root (parent of `src/`). + +Disabling Mappings~ + +If you wish to disable the default key mappings, write the following line in +your ~/.vimrc: > + + let g:scala_use_default_keymappings = 0 + +============================================================================== +CREDITS *scala-credits* + +Developed by Derek Wyatt, building on initial work by Stefan Matthias Aust. +Distributed under the Apache 2 license. + +Project's home and Git repository: https://github.com/derekwyatt/vim-scala + +------------------------------------------------------------------------------ + vim:tw=78:ts=8:ft=help:norl: diff --git a/sources_non_forked/vim-scala/ftdetect/scala.vim b/sources_non_forked/vim-scala/ftdetect/scala.vim new file mode 100644 index 00000000..785d8134 --- /dev/null +++ b/sources_non_forked/vim-scala/ftdetect/scala.vim @@ -0,0 +1,11 @@ +fun! s:DetectScala() + if getline(1) =~# '^#!\(/usr\)\?/bin/env\s\+scalas\?' + set filetype=scala + endif +endfun + +au BufRead,BufNewFile *.scala set filetype=scala +au BufRead,BufNewFile * call s:DetectScala() + +" Install vim-sbt for additional syntax highlighting. +au BufRead,BufNewFile *.sbt setfiletype sbt.scala diff --git a/sources_non_forked/vim-scala/ftplugin/scala.vim b/sources_non_forked/vim-scala/ftplugin/scala.vim new file mode 100644 index 00000000..9dc10961 --- /dev/null +++ b/sources_non_forked/vim-scala/ftplugin/scala.vim @@ -0,0 +1,176 @@ +" Vim filetype plugin +" Language: Scala +" Maintainer: Derek Wyatt +" URL: https://github.com/derekwyatt/vim-scala +" License: Apache 2 +" ---------------------------------------------------------------------------- + +if exists('b:did_ftplugin') || &cp + finish +endif +let b:did_ftplugin = 1 + +" j is fairly new in Vim, so don't complain if it's not there +setlocal formatoptions-=t formatoptions+=croqnl +silent! setlocal formatoptions+=j + +" Just like c.vim, but additionally doesn't wrap text onto /** line when +" formatting. Doesn't bungle bulleted lists when formatting. +if get(g:, 'scala_scaladoc_indent', 0) + setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s2:/**,mb:*,ex:*/,s1:/*,mb:*,ex:*/,:// +else + setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/**,mb:*,ex:*/,s1:/*,mb:*,ex:*/,:// +endif +setlocal commentstring=//\ %s + +setlocal shiftwidth=2 softtabstop=2 expandtab + +setlocal include='^\s*import' +setlocal includeexpr='substitute(v:fname,"\\.","/","g")' + +setlocal path+=src/main/scala,src/test/scala +setlocal suffixesadd=.scala + +compiler sbt + +if globpath(&rtp, 'plugin/fuf.vim') != '' + " + " FuzzyFinder stuff + " + " + " SanitizeDirForFuzzyFinder() + " + " This is really just a convenience function to clean up any stray '/' + " characters in the path, should they be there. + " + function! scala#SanitizeDirForFuzzyFinder(dir) + let dir = expand(a:dir) + let dir = substitute(dir, '/\+$', '', '') + let dir = substitute(dir, '/\+', '/', '') + + return dir + endfunction + + " + " GetDirForFuzzyFinder() + " + " Given a directory to start 'from', walk up the hierarchy, looking for a path + " that matches the 'addon' you want to see. + " + " If nothing can be found, then we just return the 'from' so we don't really get + " the advantage of a hint, but just let the user start from wherever he was + " starting from anyway. + " + function! scala#GetDirForFuzzyFinder(from, addon) + let from = scala#SanitizeDirForFuzzyFinder(a:from) + let addon = expand(a:addon) + let addon = substitute(addon, '^/\+', '', '') + let found = '' + " If the addon is right here, then we win + if isdirectory(from . '/' . addon) + let found = from . '/' . addon + else + let dirs = split(from, '/') + if !has('win32') && !has('win64') + let dirs[0] = '/' . dirs[0] + endif + " Walk up the tree and see if it's anywhere there + for n in range(len(dirs) - 1, 0, -1) + let path = join(dirs[0:n], '/') + if isdirectory(path . '/' . addon) + let found = path . '/' . addon + break + endif + endfor + endif + " If we found it, then let's see if we can go deeper + " + " For example, we may have found component_name/include + " but what if that directory only has a single directory + " in it, and that subdirectory only has a single directory + " in it, etc... ? This can happen when you're segmenting + " by namespace like this: + " + " component_name/include/org/vim/CoolClass.h + " + " You may find yourself always typing '' from the + " 'include' directory just to go into 'org/vim' so let's + " just eliminate the need to hit the ''. + if found != '' + let tempfrom = found + let globbed = globpath(tempfrom, '*') + while len(split(globbed, "\n")) == 1 + let tempfrom = globbed + let globbed = globpath(tempfrom, '*') + endwhile + let found = scala#SanitizeDirForFuzzyFinder(tempfrom) . '/' + else + let found = from + endif + + return found + endfunction + + " + " GetTestDirForFuzzyFinder() + " + " Now overload GetDirForFuzzyFinder() specifically for the test directory (I'm + " really only interested in going down into test/src 90% of the time, so let's + " hit that 90% and leave the other 10% to couple of extra keystrokes) + " + function! scala#GetTestDirForFuzzyFinder(from) + return scala#GetDirForFuzzyFinder(a:from, 'src/test/scala/') + endfunction + + " + " GetMainDirForFuzzyFinder() + " + " Now overload GetDirForFuzzyFinder() specifically for the main directory. + " + function! scala#GetMainDirForFuzzyFinder(from) + return scala#GetDirForFuzzyFinder(a:from, 'src/main/scala/') + endfunction + + " + " GetRootDirForFuzzyFinder() + " + " Now overload GetDirForFuzzyFinder() specifically for the root directory. + " + function! scala#GetRootDirForFuzzyFinder(from) + return scala#GetDirForFuzzyFinder(a:from, 'src/../') + endfunction + + " If you want to disable the default key mappings, write the following line in + " your ~/.vimrc + " let g:scala_use_default_keymappings = 0 + if get(g:, 'scala_use_default_keymappings', 1) + nnoremap ft :FufFile =scala#GetTestDirForFuzzyFinder('%:p:h') + nnoremap fs :FufFile =scala#GetMainDirForFuzzyFinder('%:p:h') + nnoremap fr :FufFile =scala#GetRootDirForFuzzyFinder('%:p:h') + endif +endif + +function! s:CreateOrExpression(keywords) + return '('.join(a:keywords, '|').')' +endfunction + +function! s:NextSection(backwards) + if a:backwards + let dir = '?' + else + let dir = '/' + endif + let keywords = [ 'def', 'class', 'trait', 'object' ] + let keywordsOrExpression = s:CreateOrExpression(keywords) + + let modifiers = [ 'public', 'private', 'private\[\w*\]', 'protected', 'abstract', 'case', 'override', 'implicit', 'final', 'sealed'] + let modifierOrExpression = s:CreateOrExpression(modifiers) + + let regex = '^ *('.modifierOrExpression.' )* *'.keywordsOrExpression."\r" + execute 'silent normal! ' . dir . '\v'.regex +endfunction + +noremap