1
0
Fork 0
mirror of synced 2024-11-16 05:55:35 -05:00

Add Drake Support; Add Apprentice Plugin

This commit is contained in:
Santanu Bhowmick 2017-11-11 12:36:22 -08:00
parent 9d72894faf
commit cbecbb8e7a
7 changed files with 604 additions and 0 deletions

View file

@ -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.

View file

@ -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 doesnt 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 Apprentices 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 Vims `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

View file

@ -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

View file

@ -0,0 +1,5 @@
.DS_Store
*.orig
*.bak
*.log
*.diff

View file

@ -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.

View file

@ -0,0 +1 @@
au BufNewFile,BufRead workflow.d,Drakefile set filetype=drake syntax=drake

View file

@ -0,0 +1,93 @@
"
" Vim syntax file for drake
" Language: drake
" Maintainer: Lars Yencken <lars@yencken.org>
" 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'