Updated Plugins

This commit is contained in:
Brian Buller 2017-11-27 07:43:28 -06:00
parent 7a949f2e81
commit e3041ba469
210 changed files with 3438 additions and 738 deletions

@ -1 +1 @@
Subproject commit 6a82202d18e3b4a4a06b6c22769ee9511335e6ae Subproject commit cbf2b4ff6714f0c76f8a08d772cc97c8748efc15

View File

@ -4,27 +4,50 @@ To use:
- :colo nofrils-dark - :colo nofrils-dark
- :colo nofrils-light - :colo nofrils-light
- :colo nofrils-sepia - :colo nofrils-sepia
- :colo nofrils-acme **NEW**
To customize: To customize:
- :let g:nofrils\_strbackgrounds=1 to turn highlighted string backgrounds, for languages where strings are a major part of them - :let g:nofrils\_strbackgrounds=1 to turn highlighted string backgrounds, for languages where strings are a major part of them
- :let g:nofrils\_heavycomments=1 to turn on high contrast comments rather than the default faded style, for projects where the comments are not deceit and lies - :let g:nofrils\_heavycomments=1 to turn on high contrast comments rather than the default faded style, for projects where the comments are not deceit and lies
- :let g:nofrils\_heavylinenumbers=1 to turn on brighter line numbers, for people who use relative line numbers to hop around - :let g:nofrils\_heavylinenumbers=1 to turn on brighter line numbers, for people who use relative line numbers to hop around
Commands (once theme is loaded):
- :NofrilsDark use dark theme
- :NofrilsLight use light theme
- :NofrilsSepia use sepia theme
- :NofrilsAcme use acme theme
- :NofrilsFocusNormal reset back to normal settings
- :NofrilsFocusCode focus only code, fade everything else
- :NofrilsFocusComments focus only comments, fade everything else
The only highlighted elements are spelling, errors, comments, vim features (diff, etc) and *optionally* string backgrounds The only highlighted elements are spelling, errors, comments, vim features (diff, etc) and *optionally* string backgrounds
**Click for non-fuzzified versions** **Click for non-fuzzified versions**
![Sepia Version](http://i.imgur.com/AU06II7.gif) *nofrils-dark*: **let g:nofrils_heavylinenumbers=1**, **:let g:nofrils_strbackgrounds=1** and **:let g:nofrils_heavycomments=1**
**let g:nofrils_heavylinenumbers=1**, **:let g:nofrils_strbackgrounds=1** and **:let g:nofrils_heavycomments=1** ![Dark Version](http://i.imgur.com/1lUx2hY.png)
![Dark Version](http://i.imgur.com/fjlOpKp.gif) ----
*let g:nofrils_heavylinenumbers=0*, **:let g:nofrils_strbackgrounds=1** and **:let g:nofrils_heavycomments=1**
*nofrils-acme*: **let g:nofrils_heavylinenumbers=0**, **:let g:nofrils_strbackgrounds=0** and **:let g:nofrils_heavycomments=0**
![Acme Version](http://i.imgur.com/yn7OJrY.png)
----
*nofrils-sepia*: **let g:nofrils_heavylinenumbers=1**, **:let g:nofrils_strbackgrounds=0** and **:let g:nofrils_heavycomments=1**
![Sepia Version](http://i.imgur.com/zwW5kir.png)
----
*nofrils-light*: **let g:nofrils_heavylinenumbers=0**, **:let g:nofrils_strbackgrounds=0** and **:let g:nofrils_heavycomments=1**
![Light Version](http://i.imgur.com/XXoxztJ.png)
----
*nofrils-acme*: **let g:nofrils_heavylinenumbers=0**, **:let g:nofrils_strbackgrounds=0** and **:let g:nofrils_heavycomments=0**
![Diffs Arcme Version](http://i.imgur.com/cLcbq7M.png)
![Light Version](http://i.imgur.com/RSYLnKd.gif)
*let g:nofrils_heavylinenumbers=0*, *:let g:nofrils_strbackgrounds=0* and *:let g:nofrils_heavycomments=0*
![Diffs Dark Version](https://i.imgur.com/AkgERzz.gif)
*let g:nofrils_heavylinenumbers=0*, *:let g:nofrils_strbackgrounds=0* and *:let g:nofrils_heavycomments=0*
---- ----

View File

@ -0,0 +1,189 @@
" Name: No Frils Acme Colorscheme
" Author: robertmeta (on Github)
" URL: https://github.com/robertmeta/nofrils
" (see this url for latest release & screenshots)
" License: OSI approved MIT license
hi clear
if exists("syntax_on")
syntax reset
endif
let g:colors_name = "nofrils-acme"
if !exists("g:nofrils_strbackgrounds")
let g:nofrils_strbackgrounds = 0
endif
if !exists("g:nofrils_heavycomments")
let g:nofrils_heavycomments = 0
endif
if !exists("g:nofrils_heavylinenumbers")
let g:nofrils_heavylinenumbers = 0
endif
set background=light
" Baseline
hi Normal term=NONE cterm=NONE ctermfg=black ctermbg=230 gui=NONE guifg=#000000 guibg=#ffffd7
" Faded
hi ColorColumn term=NONE cterm=NONE ctermfg=NONE ctermbg=253 gui=NONE guifg=NONE guibg=#dadada
hi Comment term=NONE cterm=NONE ctermfg=136 ctermbg=NONE gui=NONE guifg=#af8700 guibg=NONE
hi FoldColumn term=NONE cterm=NONE ctermfg=136 ctermbg=NONE gui=NONE guifg=#af8700 guibg=NONE
hi Folded term=NONE cterm=NONE ctermfg=240 ctermbg=NONE gui=NONE guifg=#585858 guibg=NONE
hi LineNr term=NONE cterm=NONE ctermfg=136 ctermbg=bg gui=NONE guifg=#af8700 guibg=NONE
hi NonText term=NONE cterm=NONE ctermfg=136 ctermbg=NONE gui=NONE guifg=#af8700 guibg=NONE
hi SignColumn term=NONE cterm=NONE ctermfg=240 ctermbg=bg gui=NONE guifg=#585858 guibg=bg
hi SpecialKey term=NONE cterm=NONE ctermfg=240 ctermbg=bg gui=NONE guifg=#585858 guibg=bg
hi StatusLineNC term=NONE cterm=NONE ctermfg=fg ctermbg=195 gui=NONE guifg=fg guibg=#d7ffff
hi VertSplit term=NONE cterm=NONE ctermfg=fg ctermbg=195 gui=NONE guifg=fg guibg=#d7ffff
" Highlight
hi CursorColumn term=NONE cterm=NONE ctermfg=NONE ctermbg=228 gui=NONE guifg=NONE guibg=#ffff87
hi CursorIM term=NONE cterm=NONE ctermfg=fg ctermbg=4 gui=NONE guifg=fg guibg=#00ffff
hi CursorLineNr term=NONE cterm=NONE ctermfg=0 ctermbg=228 gui=NONE guifg=NONE guibg=#ffff87
hi CursorLine term=NONE cterm=NONE ctermfg=NONE ctermbg=228 gui=NONE guifg=NONE guibg=#ffff87
hi Cursor term=NONE cterm=NONE ctermfg=fg ctermbg=4 gui=NONE guifg=fg guibg=#00ffff
hi Directory term=NONE cterm=NONE ctermfg=53 ctermbg=NONE gui=NONE guifg=#5f005f guibg=NONE
hi ErrorMsg term=NONE cterm=NONE ctermfg=9 ctermbg=white gui=NONE guifg=#ff5555 guibg=white
hi Error term=NONE cterm=NONE ctermfg=9 ctermbg=white gui=NONE guifg=#ff5555 guibg=white
hi IncSearch term=NONE cterm=NONE ctermfg=white ctermbg=2 gui=NONE guifg=white guibg=#008000
hi Search term=NONE cterm=NONE ctermfg=white ctermbg=2 gui=NONE guifg=white guibg=#008000
hi MatchParen term=NONE cterm=NONE ctermfg=15 ctermbg=4 gui=NONE guifg=#ffffff guibg=#000080
hi ModeMsg term=NONE cterm=NONE ctermfg=53 ctermbg=NONE gui=NONE guifg=#5f005f guibg=NONE
hi MoreMsg term=NONE cterm=NONE ctermfg=53 ctermbg=NONE gui=NONE guifg=#5f005f guibg=NONE
hi PmenuSel term=NONE cterm=NONE ctermfg=fg ctermbg=13 gui=NONE guifg=fg guibg=#ff00ff
hi Question term=NONE cterm=NONE ctermfg=53 ctermbg=NONE gui=NONE guifg=#5f005f guibg=NONE
hi StatusLine term=NONE cterm=NONE ctermbg=183 ctermfg=fg gui=NONE guifg=white guibg=#000000
hi Todo term=NONE cterm=NONE ctermfg=2 ctermbg=NONE gui=NONE guifg=#008000 guibg=NONE
hi WarningMsg term=NONE cterm=NONE ctermfg=9 ctermbg=white gui=NONE guifg=#ff5555 guibg=white
hi WildMenu term=NONE cterm=NONE ctermbg=fg ctermfg=183 gui=NONE guifg=#000000 guibg=white
hi Visual term=NONE cterm=NONE ctermfg=fg ctermbg=222 gui=NONE guifg=NONE guibg=#ffd787
hi VisualNOS term=underline cterm=underline ctermfg=fg ctermbg=222 gui=underline guifg=NONE guibg=#ffd787
" Reversed
hi PmenuSbar term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE
hi Pmenu term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE
hi PmenuThumb term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE
hi TabLineSel term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE
" Diff
hi DiffAdd term=NONE cterm=NONE ctermfg=2 ctermbg=NONE gui=NONE guifg=#008000 guibg=NONE
hi DiffChange term=NONE cterm=NONE ctermfg=94 ctermbg=NONE gui=NONE guifg=#875f00 guibg=NONE
hi DiffDelete term=NONE cterm=NONE ctermfg=1 ctermbg=NONE gui=NONE guifg=#800000 guibg=NONE
hi DiffText term=NONE cterm=NONE ctermfg=4 ctermbg=NONE gui=NONE guifg=#000080 guibg=NONE
" Spell
hi SpellBad term=underline cterm=underline ctermfg=5 ctermbg=NONE gui=underline guifg=#cd00cd guibg=NONE
hi SpellCap term=underline cterm=underline ctermfg=5 ctermbg=NONE gui=underline guifg=#cd00cd guibg=NONE
hi SpellLocal term=underline cterm=underline ctermfg=5 ctermbg=NONE gui=underline guifg=#cd00cd guibg=NONE
hi SpellRare term=underline cterm=underline ctermfg=5 ctermbg=NONE gui=underline guifg=#cd00cd guibg=NONE
" Vim Features
hi Menu term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Scrollbar term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi TabLineFill term=NONE cterm=NONE ctermfg=fg ctermbg=136 gui=NONE guifg=fg guibg=#af8700
hi TabLine term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Tooltip term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
" Syntax Highsepiaing (or lack there of)
hi Boolean term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Conceal term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Conditional term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Constant term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Debug term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Define term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Delimiter term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Directive term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Exception term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Float term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Format term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Function term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Identifier term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Ignore term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Include term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Keyword term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Label term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Macro term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Number term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Operator term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi PreCondit term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi PreProc term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Repeat term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi SpecialChar term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi SpecialComment term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Special term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Statement term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi StorageClass term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Structure term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Tag term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Title term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Typedef term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Type term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Underlined term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
" Sneak
hi SneakLabelMask term=NONE cterm=NONE ctermfg=black ctermbg=195 gui=NONE guifg=black guibg=#d7ffff
hi SneakTarget term=NONE cterm=NONE ctermfg=black ctermbg=195 gui=NONE guifg=black guibg=#d7ffff
hi SneakLabelTarget term=NONE cterm=NONE ctermfg=black ctermbg=183 gui=NONE guifg=black guibg=#d7afff
hi SneakScope term=NONE cterm=NONE ctermfg=black ctermbg=183 gui=NONE guifg=black guibg=#d7afff
" Helper Functions
function! NofrilsFocusComments()
hi Comment term=NONE cterm=NONE ctermfg=black ctermbg=NONE gui=NONE guifg=#af8700 guibg=NONE
hi Normal term=NONE cterm=NONE ctermfg=136 ctermbg=230 gui=NONE guifg=#000000 guibg=#ffffd7
hi LineNr term=NONE cterm=NONE ctermfg=136 ctermbg=bg gui=NONE guifg=#af8700 guibg=NONE
hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
if g:nofrils_heavycomments
hi Comment term=NONE cterm=NONE ctermfg=89 ctermbg=NONE gui=NONE guifg=#87005F guibg=NONE
end
endfunction
function! NofrilsFocusCode()
hi Comment term=NONE cterm=NONE ctermfg=136 ctermbg=NONE gui=NONE guifg=#af8700 guibg=NONE
hi Normal term=NONE cterm=NONE ctermfg=black ctermbg=230 gui=NONE guifg=#000000 guibg=#ffffd7
hi LineNr term=NONE cterm=NONE ctermfg=136 ctermbg=bg gui=NONE guifg=#af8700 guibg=NONE
hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
if g:nofrils_strbackgrounds
hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=223 gui=NONE guifg=NONE guibg=#ffd7af
hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=223 gui=NONE guifg=NONE guibg=#ffd7af
end
endfunction
function! NofrilsNormal()
hi Comment term=NONE cterm=NONE ctermfg=136 ctermbg=NONE gui=NONE guifg=#af8700 guibg=NONE
hi Normal term=NONE cterm=NONE ctermfg=black ctermbg=230 gui=NONE guifg=#000000 guibg=#ffffd7
hi LineNr term=NONE cterm=NONE ctermfg=136 ctermbg=bg gui=NONE guifg=#af8700 guibg=NONE
hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
" Optional Syntax Features
if g:nofrils_strbackgrounds
hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=223 gui=NONE guifg=NONE guibg=#ffd7af
hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=223 gui=NONE guifg=NONE guibg=#ffd7af
end
if g:nofrils_heavycomments
hi Comment term=NONE cterm=NONE ctermfg=89 ctermbg=NONE gui=NONE guifg=#87005f guibg=NONE
end
if g:nofrils_heavylinenumbers
hi LineNr term=NONE cterm=NONE ctermfg=89 ctermbg=NONE gui=NONE guifg=#87005f guibg=NONE
end
endfunction
" Command mappings
command! NofrilsDark :colo nofrils-dark
command! NofrilsLight :colo nofrils-light
command! NofrilsSepia :colo nofrils-sepia
command! NofrilsAcme :colo nofrils-acme
command! NofrilsFocusNormal :call NofrilsNormal()
command! NofrilsFocusCode :call NofrilsFocusCode()
command! NofrilsFocusComments :call NofrilsFocusComments()
" Setup normal settings
call NofrilsNormal()

View File

@ -21,6 +21,8 @@ if !exists("g:nofrils_heavylinenumbers")
let g:nofrils_heavylinenumbers = 0 let g:nofrils_heavylinenumbers = 0
endif endif
set background=dark
" Baseline " Baseline
hi Normal term=NONE cterm=NONE ctermfg=255 ctermbg=235 gui=NONE guifg=#eeeeee guibg=#262626 hi Normal term=NONE cterm=NONE ctermfg=255 ctermbg=235 gui=NONE guifg=#eeeeee guibg=#262626
@ -37,10 +39,10 @@ hi StatusLineNC term=NONE cterm=NONE ctermfg=fg ctermbg=242 gui=NONE guifg=fg gu
hi VertSplit term=NONE cterm=NONE ctermfg=black ctermbg=242 gui=NONE guifg=black guibg=#6C6C6C hi VertSplit term=NONE cterm=NONE ctermfg=black ctermbg=242 gui=NONE guifg=black guibg=#6C6C6C
" Highlighted " Highlighted
hi CursorColumn term=NONE cterm=NONE ctermfg=NONE ctermbg=black gui=NONE guifg=NONE guibg=black hi CursorColumn term=NONE cterm=NONE ctermfg=NONE ctermbg=236 gui=NONE guifg=NONE guibg=#303030
hi CursorIM term=NONE cterm=NONE ctermfg=black ctermbg=4 gui=NONE guifg=black guibg=#00FFFF hi CursorIM term=NONE cterm=NONE ctermfg=black ctermbg=4 gui=NONE guifg=black guibg=#00FFFF
hi CursorLineNr term=NONE cterm=NONE ctermfg=NONE ctermbg=black gui=NONE guifg=NONE guibg=black hi CursorLineNr term=NONE cterm=NONE ctermfg=NONE ctermbg=black gui=NONE guifg=NONE guibg=black
hi CursorLine term=NONE cterm=NONE ctermfg=NONE ctermbg=black gui=NONE guifg=NONE guibg=black hi CursorLine term=NONE cterm=NONE ctermfg=NONE ctermbg=236 gui=NONE guifg=NONE guibg=#303030
hi Cursor term=NONE cterm=NONE ctermfg=black ctermbg=4 gui=NONE guifg=black guibg=#00FFFF hi Cursor term=NONE cterm=NONE ctermfg=black ctermbg=4 gui=NONE guifg=black guibg=#00FFFF
hi Directory term=NONE cterm=NONE ctermfg=69 ctermbg=NONE gui=NONE guifg=#5F87FF guibg=NONE hi Directory term=NONE cterm=NONE ctermfg=69 ctermbg=NONE gui=NONE guifg=#5F87FF guibg=NONE
hi ErrorMsg term=NONE cterm=NONE ctermfg=fg ctermbg=52 gui=NONE guifg=fg guibg=#5F0000 hi ErrorMsg term=NONE cterm=NONE ctermfg=fg ctermbg=52 gui=NONE guifg=fg guibg=#5F0000
@ -54,8 +56,8 @@ hi Question term=NONE cterm=NONE ctermfg=69 ctermbg=NONE gui=NONE guifg=#5F87FF
hi Search term=NONE cterm=NONE ctermfg=black ctermbg=6 gui=NONE guifg=black guibg=#00CDCD hi Search term=NONE cterm=NONE ctermfg=black ctermbg=6 gui=NONE guifg=black guibg=#00CDCD
hi StatusLine term=NONE cterm=NONE ctermfg=black ctermbg=fg gui=NONE guifg=black guibg=fg hi StatusLine term=NONE cterm=NONE ctermfg=black ctermbg=fg gui=NONE guifg=black guibg=fg
hi Todo term=NONE cterm=NONE ctermfg=10 ctermbg=NONE gui=NONE guifg=#00FF00 guibg=black hi Todo term=NONE cterm=NONE ctermfg=10 ctermbg=NONE gui=NONE guifg=#00FF00 guibg=black
hi VisualNOS term=NONE cterm=NONE ctermfg=NONE ctermbg=69 gui=NONE guifg=NONE guibg=#5F87FF
hi WarningMsg term=NONE cterm=NONE ctermfg=fg ctermbg=52 gui=NONE guifg=fg guibg=#5F0000 hi WarningMsg term=NONE cterm=NONE ctermfg=fg ctermbg=52 gui=NONE guifg=fg guibg=#5F0000
hi WildMenu term=NONE cterm=NONE ctermfg=fg ctermbg=black gui=NONE guifg=fg guibg=black
" Reversed " Reversed
hi PmenuSbar term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE hi PmenuSbar term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE
@ -63,7 +65,7 @@ hi Pmenu term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=
hi PmenuThumb term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE hi PmenuThumb term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE
hi TabLineSel term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE hi TabLineSel term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE
hi Visual term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE hi Visual term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE
hi WildMenu term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE hi VisualNOS term=reverse,underline cterm=reverse,underline ctermfg=NONE ctermbg=NONE gui=reverse,underline guifg=NONE guibg=NONE
" Diff " Diff
hi DiffAdd term=NONE cterm=NONE ctermfg=2 ctermbg=NONE gui=NONE guifg=#008000 guibg=NONE hi DiffAdd term=NONE cterm=NONE ctermfg=2 ctermbg=NONE gui=NONE guifg=#008000 guibg=NONE
@ -123,19 +125,65 @@ hi Type term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg
hi Underlined term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE hi Underlined term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
" Sneak " Sneak
hi SneakPluginScope term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE hi SneakLabelMask term=NONE cterm=NONE ctermfg=black ctermbg=195 gui=NONE guifg=black guibg=#d7ffff
hi SneakStreakMask term=NONE cterm=NONE ctermfg=black ctermbg=darkgreen gui=NONE guifg=black guibg=darkgreen hi SneakTarget term=NONE cterm=NONE ctermfg=black ctermbg=195 gui=NONE guifg=black guibg=#d7ffff
hi SneakStreakStatusLine term=NONE cterm=NONE ctermfg=black ctermbg=darkgreen gui=NONE guifg=black guibg=darkgreen hi SneakLabelTarget term=NONE cterm=NONE ctermfg=black ctermbg=183 gui=NONE guifg=black guibg=#d7afff
hi SneakStreakTarget term=NONE cterm=NONE ctermfg=black ctermbg=green gui=NONE guifg=black guibg=green hi SneakScope term=NONE cterm=NONE ctermfg=black ctermbg=183 gui=NONE guifg=black guibg=#d7afff
" Optional Syntax Features " Helper Functions
if g:nofrils_strbackgrounds function! NofrilsFocusComments()
hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=233 gui=NONE guifg=NONE guibg=#121212 hi Comment term=NONE cterm=NONE ctermfg=255 ctermbg=235 gui=NONE guifg=#eeeeee guibg=#262626
hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=233 gui=NONE guifg=NONE guibg=#121212 hi Normal term=NONE cterm=NONE ctermfg=242 ctermbg=235 gui=NONE guifg=#eeeeee guibg=#262626
end hi LineNr term=NONE cterm=NONE ctermfg=8 ctermbg=bg gui=NONE guifg=#808080 guibg=bg
if g:nofrils_heavycomments hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Comment term=NONE cterm=NONE ctermfg=135 ctermbg=NONE gui=NONE guifg=#AF5FFF guibg=NONE hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
end
if g:nofrils_heavylinenumbers if g:nofrils_heavycomments
hi LineNr term=NONE cterm=NONE ctermfg=135 ctermbg=NONE gui=NONE guifg=#AF5FFF guibg=NONE hi Comment term=NONE cterm=NONE ctermfg=135 ctermbg=NONE gui=NONE guifg=#AF5FFF guibg=NONE
end end
endfunction
function! NofrilsFocusCode()
hi Comment term=NONE cterm=NONE ctermfg=242 ctermbg=235 gui=NONE guifg=#eeeeee guibg=#262626
hi Normal term=NONE cterm=NONE ctermfg=255 ctermbg=235 gui=NONE guifg=#eeeeee guibg=#262626
hi LineNr term=NONE cterm=NONE ctermfg=8 ctermbg=bg gui=NONE guifg=#808080 guibg=bg
hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
if g:nofrils_strbackgrounds
hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=233 gui=NONE guifg=NONE guibg=#121212
hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=233 gui=NONE guifg=NONE guibg=#121212
end
endfunction
function! NofrilsNormal()
hi Comment term=NONE cterm=NONE ctermfg=242 ctermbg=NONE gui=NONE guifg=#6C6C6C guibg=NONE
hi Normal term=NONE cterm=NONE ctermfg=255 ctermbg=235 gui=NONE guifg=#eeeeee guibg=#262626
hi LineNr term=NONE cterm=NONE ctermfg=8 ctermbg=bg gui=NONE guifg=#808080 guibg=bg
hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
" Optional Syntax Features
if g:nofrils_strbackgrounds
hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=233 gui=NONE guifg=NONE guibg=#121212
hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=233 gui=NONE guifg=NONE guibg=#121212
end
if g:nofrils_heavycomments
hi Comment term=NONE cterm=NONE ctermfg=135 ctermbg=NONE gui=NONE guifg=#AF5FFF guibg=NONE
end
if g:nofrils_heavylinenumbers
hi LineNr term=NONE cterm=NONE ctermfg=135 ctermbg=NONE gui=NONE guifg=#AF5FFF guibg=NONE
end
endfunction
" Command mappings
command! NofrilsDark :colo nofrils-dark
command! NofrilsLight :colo nofrils-light
command! NofrilsSepia :colo nofrils-sepia
command! NofrilsAcme :colo nofrils-acme
command! NofrilsFocusNormal :call NofrilsNormal()
command! NofrilsFocusCode :call NofrilsFocusCode()
command! NofrilsFocusComments :call NofrilsFocusComments()
" Setup normal settings
call NofrilsNormal()

View File

@ -21,6 +21,8 @@ if !exists("g:nofrils_heavylinenumbers")
let g:nofrils_heavylinenumbers = 0 let g:nofrils_heavylinenumbers = 0
endif endif
set background=light
" Baseline " Baseline
hi Normal term=NONE cterm=NONE ctermfg=black ctermbg=255 gui=NONE guifg=#000000 guibg=#E4E4E4 hi Normal term=NONE cterm=NONE ctermfg=black ctermbg=255 gui=NONE guifg=#000000 guibg=#E4E4E4
@ -37,10 +39,10 @@ hi StatusLineNC term=NONE cterm=NONE ctermfg=fg ctermbg=248 gui=NONE guifg=fg gu
hi VertSplit term=NONE cterm=NONE ctermfg=fg ctermbg=248 gui=NONE guifg=fg guibg=#A8A8A8 hi VertSplit term=NONE cterm=NONE ctermfg=fg ctermbg=248 gui=NONE guifg=fg guibg=#A8A8A8
" Highlighted " Highlighted
hi CursorColumn term=NONE cterm=NONE ctermfg=NONE ctermbg=white gui=NONE guifg=NONE guibg=white hi CursorColumn term=NONE cterm=NONE ctermfg=NONE ctermbg=253 gui=NONE guifg=NONE guibg=#DADADA
hi CursorIM term=NONE cterm=NONE ctermfg=fg ctermbg=4 gui=NONE guifg=fg guibg=#00FFFF hi CursorIM term=NONE cterm=NONE ctermfg=fg ctermbg=4 gui=NONE guifg=fg guibg=#00FFFF
hi CursorLineNr term=NONE cterm=NONE ctermfg=NONE ctermbg=white gui=NONE guifg=NONE guibg=white hi CursorLineNr term=NONE cterm=NONE ctermfg=NONE ctermbg=white gui=NONE guifg=NONE guibg=white
hi CursorLine term=NONE cterm=NONE ctermfg=NONE ctermbg=white gui=NONE guifg=NONE guibg=white hi CursorLine term=NONE cterm=NONE ctermfg=NONE ctermbg=253 gui=NONE guifg=NONE guibg=#DADADA
hi Cursor term=NONE cterm=NONE ctermfg=fg ctermbg=4 gui=NONE guifg=fg guibg=#00FFFF hi Cursor term=NONE cterm=NONE ctermfg=fg ctermbg=4 gui=NONE guifg=fg guibg=#00FFFF
hi Directory term=NONE cterm=NONE ctermfg=53 ctermbg=NONE gui=NONE guifg=#5F005F guibg=NONE hi Directory term=NONE cterm=NONE ctermfg=53 ctermbg=NONE gui=NONE guifg=#5F005F guibg=NONE
hi ErrorMsg term=NONE cterm=NONE ctermfg=9 ctermbg=white gui=NONE guifg=#FF5555 guibg=white hi ErrorMsg term=NONE cterm=NONE ctermfg=9 ctermbg=white gui=NONE guifg=#FF5555 guibg=white
@ -54,8 +56,8 @@ hi Question term=NONE cterm=NONE ctermfg=53 ctermbg=NONE gui=NONE guifg=#5F005F
hi Search term=NONE cterm=NONE ctermfg=white ctermbg=6 gui=NONE guifg=white guibg=#00CDCD hi Search term=NONE cterm=NONE ctermfg=white ctermbg=6 gui=NONE guifg=white guibg=#00CDCD
hi StatusLine term=NONE cterm=NONE ctermfg=white ctermbg=black gui=NONE guifg=white guibg=#000000 hi StatusLine term=NONE cterm=NONE ctermfg=white ctermbg=black gui=NONE guifg=white guibg=#000000
hi Todo term=NONE cterm=NONE ctermfg=2 ctermbg=NONE gui=NONE guifg=#008000 guibg=NONE hi Todo term=NONE cterm=NONE ctermfg=2 ctermbg=NONE gui=NONE guifg=#008000 guibg=NONE
hi VisualNOS term=NONE cterm=NONE ctermfg=NONE ctermbg=53 gui=NONE guifg=NONE guibg=#5F005F
hi WarningMsg term=NONE cterm=NONE ctermfg=9 ctermbg=white gui=NONE guifg=#FF5555 guibg=white hi WarningMsg term=NONE cterm=NONE ctermfg=9 ctermbg=white gui=NONE guifg=#FF5555 guibg=white
hi WildMenu term=NONE cterm=NONE ctermfg=black ctermbg=white gui=NONE guifg=#000000 guibg=white
" Reversed " Reversed
hi PmenuSbar term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE hi PmenuSbar term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE
@ -63,7 +65,7 @@ hi Pmenu term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=
hi PmenuThumb term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE hi PmenuThumb term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE
hi TabLineSel term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE hi TabLineSel term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE
hi Visual term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE hi Visual term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE
hi WildMenu term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE hi VisualNOS term=reverse,underline cterm=reverse,underline ctermfg=NONE ctermbg=NONE gui=reverse,underline guifg=NONE guibg=NONE
" Diff " Diff
hi DiffAdd term=NONE cterm=NONE ctermfg=2 ctermbg=NONE gui=NONE guifg=#008000 guibg=NONE hi DiffAdd term=NONE cterm=NONE ctermfg=2 ctermbg=NONE gui=NONE guifg=#008000 guibg=NONE
@ -123,19 +125,65 @@ hi Type term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg
hi Underlined term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE hi Underlined term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
" Sneak " Sneak
hi SneakPluginScope term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE hi SneakLabelMask term=NONE cterm=NONE ctermfg=black ctermbg=195 gui=NONE guifg=black guibg=#d7ffff
hi SneakStreakMask term=NONE cterm=NONE ctermfg=black ctermbg=darkgreen gui=NONE guifg=black guibg=darkgreen hi SneakTarget term=NONE cterm=NONE ctermfg=black ctermbg=195 gui=NONE guifg=black guibg=#d7ffff
hi SneakStreakStatusLine term=NONE cterm=NONE ctermfg=black ctermbg=darkgreen gui=NONE guifg=black guibg=darkgreen hi SneakLabelTarget term=NONE cterm=NONE ctermfg=black ctermbg=183 gui=NONE guifg=black guibg=#d7afff
hi SneakStreakTarget term=NONE cterm=NONE ctermfg=black ctermbg=green gui=NONE guifg=black guibg=green hi SneakScope term=NONE cterm=NONE ctermfg=black ctermbg=183 gui=NONE guifg=black guibg=#d7afff
" Optional Syntax Features " Helper Functions
if g:nofrils_strbackgrounds function! NofrilsFocusComments()
hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=253 gui=NONE guifg=NONE guibg=#DADADA hi Comment term=NONE cterm=NONE ctermfg=black ctermbg=NONE gui=NONE guifg=#A8A8A8 guibg=NONE
hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=253 gui=NONE guifg=NONE guibg=#DADADA hi Normal term=NONE cterm=NONE ctermfg=248 ctermbg=255 gui=NONE guifg=#000000 guibg=#E4E4E4
end hi LineNr term=NONE cterm=NONE ctermfg=248 ctermbg=bg gui=NONE guifg=#A8A8A8 guibg=NONE
if g:nofrils_heavycomments hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Comment term=NONE cterm=NONE ctermfg=89 ctermbg=NONE gui=NONE guifg=#87005F guibg=NONE hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
end
if g:nofrils_heavylinenumbers if g:nofrils_heavycomments
hi LineNr term=NONE cterm=NONE ctermfg=89 ctermbg=NONE gui=NONE guifg=#87005F guibg=NONE hi Comment term=NONE cterm=NONE ctermfg=89 ctermbg=NONE gui=NONE guifg=#87005F guibg=NONE
end end
endfunction
function! NofrilsFocusCode()
hi Comment term=NONE cterm=NONE ctermfg=248 ctermbg=NONE gui=NONE guifg=#A8A8A8 guibg=NONE
hi Normal term=NONE cterm=NONE ctermfg=black ctermbg=255 gui=NONE guifg=#000000 guibg=#E4E4E4
hi LineNr term=NONE cterm=NONE ctermfg=248 ctermbg=bg gui=NONE guifg=#A8A8A8 guibg=NONE
hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
if g:nofrils_strbackgrounds
hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=253 gui=NONE guifg=NONE guibg=#DADADA
hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=253 gui=NONE guifg=NONE guibg=#DADADA
end
endfunction
function! NofrilsNormal()
hi Comment term=NONE cterm=NONE ctermfg=248 ctermbg=NONE gui=NONE guifg=#A8A8A8 guibg=NONE
hi Normal term=NONE cterm=NONE ctermfg=black ctermbg=255 gui=NONE guifg=#000000 guibg=#E4E4E4
hi LineNr term=NONE cterm=NONE ctermfg=248 ctermbg=bg gui=NONE guifg=#A8A8A8 guibg=NONE
hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
" Optional Syntax Features
if g:nofrils_strbackgrounds
hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=253 gui=NONE guifg=NONE guibg=#DADADA
hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=253 gui=NONE guifg=NONE guibg=#DADADA
end
if g:nofrils_heavycomments
hi Comment term=NONE cterm=NONE ctermfg=89 ctermbg=NONE gui=NONE guifg=#87005F guibg=NONE
end
if g:nofrils_heavylinenumbers
hi LineNr term=NONE cterm=NONE ctermfg=89 ctermbg=NONE gui=NONE guifg=#87005F guibg=NONE
end
endfunction
" Command mappings
command! NofrilsDark :colo nofrils-dark
command! NofrilsLight :colo nofrils-light
command! NofrilsSepia :colo nofrils-sepia
command! NofrilsAcme :colo nofrils-acme
command! NofrilsFocusNormal :call NofrilsNormal()
command! NofrilsFocusCode :call NofrilsFocusCode()
command! NofrilsFocusComments :call NofrilsFocusComments()
" Setup normal settings
call NofrilsNormal()

View File

@ -21,6 +21,8 @@ if !exists("g:nofrils_heavylinenumbers")
let g:nofrils_heavylinenumbers = 0 let g:nofrils_heavylinenumbers = 0
endif endif
set background=light
" Baseline " Baseline
hi Normal term=NONE cterm=NONE ctermfg=black ctermbg=223 gui=NONE guifg=#000000 guibg=#ffdfaf hi Normal term=NONE cterm=NONE ctermfg=black ctermbg=223 gui=NONE guifg=#000000 guibg=#ffdfaf
@ -37,10 +39,10 @@ hi StatusLineNC term=NONE cterm=NONE ctermfg=fg ctermbg=136 gui=NONE guifg=fg gu
hi VertSplit term=NONE cterm=NONE ctermfg=fg ctermbg=136 gui=NONE guifg=fg guibg=#af8700 hi VertSplit term=NONE cterm=NONE ctermfg=fg ctermbg=136 gui=NONE guifg=fg guibg=#af8700
" Highlight " Highlight
hi CursorColumn term=NONE cterm=NONE ctermfg=NONE ctermbg=224 gui=NONE guifg=NONE guibg=#ffdfdf hi CursorColumn term=NONE cterm=NONE ctermfg=NONE ctermbg=225 gui=NONE guifg=NONE guibg=#ffdfff
hi CursorIM term=NONE cterm=NONE ctermfg=fg ctermbg=4 gui=NONE guifg=fg guibg=#00FFFF hi CursorIM term=NONE cterm=NONE ctermfg=fg ctermbg=4 gui=NONE guifg=fg guibg=#00FFFF
hi CursorLineNr term=NONE cterm=NONE ctermfg=NONE ctermbg=224 gui=NONE guifg=NONE guibg=#ffdfdf hi CursorLineNr term=NONE cterm=NONE ctermfg=NONE ctermbg=225 gui=NONE guifg=NONE guibg=#ffdfff
hi CursorLine term=NONE cterm=NONE ctermfg=NONE ctermbg=224 gui=NONE guifg=NONE guibg=#ffdfdf hi CursorLine term=NONE cterm=NONE ctermfg=NONE ctermbg=225 gui=NONE guifg=NONE guibg=#ffdfff
hi Cursor term=NONE cterm=NONE ctermfg=fg ctermbg=4 gui=NONE guifg=fg guibg=#00FFFF hi Cursor term=NONE cterm=NONE ctermfg=fg ctermbg=4 gui=NONE guifg=fg guibg=#00FFFF
hi Directory term=NONE cterm=NONE ctermfg=53 ctermbg=NONE gui=NONE guifg=#5F005F guibg=NONE hi Directory term=NONE cterm=NONE ctermfg=53 ctermbg=NONE gui=NONE guifg=#5F005F guibg=NONE
hi ErrorMsg term=NONE cterm=NONE ctermfg=9 ctermbg=white gui=NONE guifg=#FF5555 guibg=white hi ErrorMsg term=NONE cterm=NONE ctermfg=9 ctermbg=white gui=NONE guifg=#FF5555 guibg=white
@ -54,8 +56,8 @@ hi Question term=NONE cterm=NONE ctermfg=53 ctermbg=NONE gui=NONE guifg=#5F005F
hi Search term=NONE cterm=NONE ctermfg=white ctermbg=6 gui=NONE guifg=white guibg=#00CDCD hi Search term=NONE cterm=NONE ctermfg=white ctermbg=6 gui=NONE guifg=white guibg=#00CDCD
hi StatusLine term=NONE cterm=NONE ctermfg=white ctermbg=fg gui=NONE guifg=white guibg=#000000 hi StatusLine term=NONE cterm=NONE ctermfg=white ctermbg=fg gui=NONE guifg=white guibg=#000000
hi Todo term=NONE cterm=NONE ctermfg=2 ctermbg=NONE gui=NONE guifg=#008000 guibg=NONE hi Todo term=NONE cterm=NONE ctermfg=2 ctermbg=NONE gui=NONE guifg=#008000 guibg=NONE
hi VisualNOS term=NONE cterm=NONE ctermfg=NONE ctermbg=53 gui=NONE guifg=NONE guibg=#5F005F
hi WarningMsg term=NONE cterm=NONE ctermfg=9 ctermbg=white gui=NONE guifg=#FF5555 guibg=white hi WarningMsg term=NONE cterm=NONE ctermfg=9 ctermbg=white gui=NONE guifg=#FF5555 guibg=white
hi WildMenu term=NONE cterm=NONE ctermfg=fg ctermbg=white gui=NONE guifg=#000000 guibg=white
" Reversed " Reversed
hi PmenuSbar term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE hi PmenuSbar term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE
@ -63,7 +65,7 @@ hi Pmenu term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=
hi PmenuThumb term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE hi PmenuThumb term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE
hi TabLineSel term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE hi TabLineSel term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE
hi Visual term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE hi Visual term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE
hi WildMenu term=reverse cterm=reverse ctermfg=NONE ctermbg=NONE gui=reverse guifg=NONE guibg=NONE hi VisualNOS term=reverse,underline cterm=reverse,underline ctermfg=NONE ctermbg=NONE gui=reverse,underline guifg=NONE guibg=NONE
" Diff " Diff
hi DiffAdd term=NONE cterm=NONE ctermfg=2 ctermbg=NONE gui=NONE guifg=#008000 guibg=NONE hi DiffAdd term=NONE cterm=NONE ctermfg=2 ctermbg=NONE gui=NONE guifg=#008000 guibg=NONE
@ -123,19 +125,65 @@ hi Type term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg
hi Underlined term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE hi Underlined term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
" Sneak " Sneak
hi SneakPluginScope term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE hi SneakLabelMask term=NONE cterm=NONE ctermfg=black ctermbg=195 gui=NONE guifg=black guibg=#d7ffff
hi SneakStreakMask term=NONE cterm=NONE ctermfg=fg ctermbg=darkgreen gui=NONE guifg=black guibg=darkgreen hi SneakTarget term=NONE cterm=NONE ctermfg=black ctermbg=195 gui=NONE guifg=black guibg=#d7ffff
hi SneakStreakStatusLine term=NONE cterm=NONE ctermfg=fg ctermbg=darkgreen gui=NONE guifg=black guibg=darkgreen hi SneakLabelTarget term=NONE cterm=NONE ctermfg=black ctermbg=183 gui=NONE guifg=black guibg=#d7afff
hi SneakStreakTarget term=NONE cterm=NONE ctermfg=fg ctermbg=green gui=NONE guifg=black guibg=green hi SneakScope term=NONE cterm=NONE ctermfg=black ctermbg=183 gui=NONE guifg=black guibg=#d7afff
" Optional Syntax Features " Helper Functions
if g:nofrils_strbackgrounds function! NofrilsFocusComments()
hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=222 gui=NONE guifg=NONE guibg=#DADADA hi Comment term=NONE cterm=NONE ctermfg=black ctermbg=NONE gui=NONE guifg=#af8700 guibg=NONE
hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=222 gui=NONE guifg=NONE guibg=#DADADA hi Normal term=NONE cterm=NONE ctermfg=136 ctermbg=223 gui=NONE guifg=#000000 guibg=#ffdfaf
end hi LineNr term=NONE cterm=NONE ctermfg=136 ctermbg=bg gui=NONE guifg=#af8700 guibg=NONE
if g:nofrils_heavycomments hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi Comment term=NONE cterm=NONE ctermfg=89 ctermbg=NONE gui=NONE guifg=#87005F guibg=NONE hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
end
if g:nofrils_heavylinenumbers if g:nofrils_heavycomments
hi LineNr term=NONE cterm=NONE ctermfg=89 ctermbg=NONE gui=NONE guifg=#87005F guibg=NONE hi Comment term=NONE cterm=NONE ctermfg=89 ctermbg=NONE gui=NONE guifg=#87005F guibg=NONE
end end
endfunction
function! NofrilsFocusCode()
hi Comment term=NONE cterm=NONE ctermfg=136 ctermbg=NONE gui=NONE guifg=#af8700 guibg=NONE
hi Normal term=NONE cterm=NONE ctermfg=black ctermbg=223 gui=NONE guifg=#000000 guibg=#ffdfaf
hi LineNr term=NONE cterm=NONE ctermfg=136 ctermbg=bg gui=NONE guifg=#af8700 guibg=NONE
hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
if g:nofrils_strbackgrounds
hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=222 gui=NONE guifg=NONE guibg=#ffdf87
hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=222 gui=NONE guifg=NONE guibg=#ffdf87
end
endfunction
function! NofrilsNormal()
hi Comment term=NONE cterm=NONE ctermfg=136 ctermbg=NONE gui=NONE guifg=#af8700 guibg=NONE
hi Normal term=NONE cterm=NONE ctermfg=black ctermbg=223 gui=NONE guifg=#000000 guibg=#ffdfaf
hi LineNr term=NONE cterm=NONE ctermfg=136 ctermbg=bg gui=NONE guifg=#af8700 guibg=NONE
hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=NONE gui=NONE guifg=NONE guibg=NONE
" Optional Syntax Features
if g:nofrils_strbackgrounds
hi Character term=NONE cterm=NONE ctermfg=NONE ctermbg=222 gui=NONE guifg=NONE guibg=#DADADA
hi String term=NONE cterm=NONE ctermfg=NONE ctermbg=222 gui=NONE guifg=NONE guibg=#ffdf87
end
if g:nofrils_heavycomments
hi Comment term=NONE cterm=NONE ctermfg=89 ctermbg=NONE gui=NONE guifg=#87005F guibg=NONE
end
if g:nofrils_heavylinenumbers
hi LineNr term=NONE cterm=NONE ctermfg=89 ctermbg=NONE gui=NONE guifg=#87005F guibg=NONE
end
endfunction
" Command mappings
command! NofrilsDark :colo nofrils-dark
command! NofrilsLight :colo nofrils-light
command! NofrilsSepia :colo nofrils-sepia
command! NofrilsAcme :colo nofrils-acme
command! NofrilsFocusNormal :call NofrilsNormal()
command! NofrilsFocusCode :call NofrilsFocusCode()
command! NofrilsFocusComments :call NofrilsFocusComments()
" Setup normal settings
call NofrilsNormal()

View File

@ -0,0 +1,458 @@
package main
import (
"html/template"
"log"
"os"
)
func main() {
tmpl := template.New("schemes.tmpl")
template.Must(tmpl.ParseFiles("schemes.tmpl"))
cursorLineRow := vimColorRow{FG: colors["NONE"], BG: colors["White"], Attr: "NONE"}
cursorRow := vimColorRow{FG: colors["Aqua"], BG: colors["FG"], Attr: "NONE"}
diffAddRow := vimColorRow{FG: colors["Green1"], BG: colors["NONE"], Attr: "NONE"}
diffChangeRow := vimColorRow{FG: colors["Orange4"], BG: colors["NONE"], Attr: "NONE"}
diffDeleteRow := vimColorRow{FG: colors["Maroon"], BG: colors["NONE"], Attr: "NONE"}
diffTextRow := vimColorRow{FG: colors["Navy"], BG: colors["NONE"], Attr: "NONE"}
directoryRow := vimColorRow{FG: colors["DeepPink7"], BG: colors["NONE"], Attr: "NONE"}
errorRow := vimColorRow{FG: colors["Red1"], BG: colors["White"], Attr: "NONE"}
fadedRow := vimColorRow{FG: colors["SandyBrown"], BG: colors["NONE"], Attr: "NONE"}
foldedRow := vimColorRow{FG: colors["Grey35"], BG: colors["NONE"], Attr: "NONE"}
matchParenRow := vimColorRow{FG: colors["White"], BG: colors["Navy"], Attr: "NONE"}
noneRow := vimColorRow{FG: colors["NONE"], BG: colors["NONE"], Attr: "NONE"}
normalRow := vimColorRow{FG: colors["Black"], BG: colors["Cornsilk"], Attr: "NONE"}
searchRow := vimColorRow{FG: colors["White"], BG: colors["Green1"], Attr: "NONE"}
spellRow := vimColorRow{FG: colors["Purple2"], BG: colors["NONE"], Attr: "underline"}
statusLineRow := vimColorRow{FG: colors["Black"], BG: colors["Plum2"], Attr: "NONE"}
vertSplitRow := vimColorRow{FG: colors["Black"], BG: colors["LightCyan2"], Attr: "NONE"}
visualSelectRow := vimColorRow{FG: colors["FG"], BG: colors["LightGoldenrod5"], Attr: "NONE"}
heavyCommentRow := vimColorRow{FG: colors["DeepPink8"], BG: colors["NONE"], Attr: "NONE"}
heavyStringRow := vimColorRow{FG: colors["Grey100"], BG: colors["NONE"], Attr: "NONE"}
heavyLineRow := vimColorRow{FG: colors["DeepPink8"], BG: colors["NONE"], Attr: "NONE"}
pmenuRow := reverse(normalRow)
visualNOSRow := reverse(directoryRow)
commentRow := reverse(visualSelectRow)
nft := nofrilsTheme{
Name: "No Frils Acme",
Slug: "nofrils-acme",
FadedRow: fadedRow,
NoneRow: noneRow,
NormalRow: normalRow,
CommentRow: commentRow,
HeavyCommentRow: heavyCommentRow,
HeavyStringRow: heavyStringRow,
HeavyLineRow: heavyLineRow,
Rows: []vimColorRow{
withName("Normal", normalRow),
withName("ColorColumn", cursorLineRow),
withName("MatchParen", matchParenRow),
withName("PmenuSel", statusLineRow),
withName("Visual", visualSelectRow),
withName("VisualNOS", visualNOSRow),
withName("Todo", diffAddRow),
withName("Comment", commentRow),
withName("FoldColumn", fadedRow),
withName("LineNr", fadedRow),
withName("NonText", fadedRow),
withName("Folded", foldedRow),
withName("SignColumn", foldedRow),
withName("SpecialKey", foldedRow),
withName("TabLineFill", vertSplitRow),
withName("TabLine", vertSplitRow),
withName("StatusLineNC", vertSplitRow),
withName("VertSplit", vertSplitRow),
withName("TabLineSel", statusLineRow),
withName("StatusLine", statusLineRow),
withName("SneakLabelTarget", statusLineRow),
withName("SneakScope", statusLineRow),
withName("CursorColumn", cursorLineRow),
withName("CursorLineNr", cursorLineRow),
withName("CursorLine", cursorLineRow),
withName("CursorIM", cursorRow),
withName("Cursor", cursorRow),
withName("Directory", directoryRow),
withName("ModeMsg", directoryRow),
withName("MoreMsg", directoryRow),
withName("Question", directoryRow),
withName("Error", errorRow),
withName("ErrorMsg", errorRow),
withName("WarningMsg", errorRow),
withName("IncSearch", searchRow),
withName("Search", searchRow),
withName("PmenuSbar", pmenuRow),
withName("Pmenu", pmenuRow),
withName("PmenuThumb", pmenuRow),
withName("WildMenu", pmenuRow),
withName("DiffAdd", diffAddRow),
withName("DiffChange", diffChangeRow),
withName("DiffDelete", diffDeleteRow),
withName("DiffText", diffTextRow),
withName("SpellBad", spellRow),
withName("SpellCap", spellRow),
withName("SpellLocal", spellRow),
withName("SpellRare", spellRow),
withName("SneakLabelMask", vertSplitRow),
withName("SneakTarget", vertSplitRow),
withName("Menu", noneRow),
withName("Scrollbar", noneRow),
withName("Tooltip", noneRow),
withName("Boolean", noneRow),
withName("Character", noneRow),
withName("Conceal", noneRow),
withName("Conditional", noneRow),
withName("Constant", noneRow),
withName("Debug", noneRow),
withName("Define", noneRow),
withName("Delimiter", noneRow),
withName("Directive", noneRow),
withName("Exception", noneRow),
withName("Float", noneRow),
withName("Format", noneRow),
withName("Function", noneRow),
withName("Identifier", noneRow),
withName("Ignore", noneRow),
withName("Include", noneRow),
withName("Keyword", noneRow),
withName("Label", noneRow),
withName("Macro", noneRow),
withName("Number", noneRow),
withName("Operator", noneRow),
withName("PreCondit", noneRow),
withName("PreProc", noneRow),
withName("Repeat", noneRow),
withName("SpecialChar", noneRow),
withName("SpecialComment", noneRow),
withName("Special", noneRow),
withName("Statement", noneRow),
withName("StorageClass", noneRow),
withName("String", noneRow),
withName("Structure", noneRow),
withName("Tag", noneRow),
withName("Title", noneRow),
withName("Typedef", noneRow),
withName("Type", noneRow),
withName("Underlined", noneRow),
},
}
err := tmpl.Execute(os.Stdout, nft)
if err != nil {
log.Fatal(err)
}
}
func withName(name string, vcr vimColorRow) vimColorRow {
vcr.Name = name
return vcr
}
func reverse(vcr vimColorRow) vimColorRow {
vcr.BG, vcr.FG = vcr.FG, vcr.BG
return vcr
}
type color struct {
TermCode string
GuiCode string
}
type vimColorRow struct {
Name string
BG color
FG color
Attr string // only used for underline currently
}
type nofrilsTheme struct {
Name string
Slug string
FadedRow vimColorRow
NoneRow vimColorRow
NormalRow vimColorRow
CommentRow vimColorRow
HeavyCommentRow vimColorRow
HeavyStringRow vimColorRow
HeavyLineRow vimColorRow
Rows []vimColorRow
}
var colors = map[string]color{
"Aqua": color{"14", "#00ffff"},
"Aquamarine1": color{"122", "#87ffd7"},
"Aquamarine2": color{"86", "#5fffd7"},
"Aquamarine3": color{"79", "#5fd7af"},
"Black": color{"0", "#000000"},
"Blue1": color{"12", "#0000ff"},
"Blue2": color{"21", "#0000ff"},
"Blue3": color{"19", "#0000af"},
"Blue4": color{"20", "#0000d7"},
"BlueViolet": color{"57", "#5f00ff"},
"CadetBlue1": color{"72", "#5faf87"},
"CadetBlue2": color{"73", "#5fafaf"},
"Chartreuse1": color{"118", "#87ff00"},
"Chartreuse2": color{"112", "#87d700"},
"Chartreuse3": color{"82", "#5fff00"},
"Chartreuse4": color{"70", "#5faf00"},
"Chartreuse5": color{"76", "#5fd700"},
"Chartreuse6": color{"64", "#5f8700"},
"CornflowerBlue": color{"69", "#5f87ff"},
"Cornsilk": color{"230", "#ffffd7"},
"Cyan1": color{"51", "#00ffff"},
"Cyan2": color{"50", "#00ffd7"},
"Cyan3": color{"43", "#00d7af"},
"DarkBlue": color{"18", "#000087"},
"DarkCyan": color{"36", "#00af87"},
"DarkGoldenrod": color{"136", "#af8700"},
"DarkGreen": color{"22", "#005f00"},
"DarkKhaki": color{"143", "#afaf5f"},
"DarkMagenta1": color{"90", "#870087"},
"DarkMagenta2": color{"91", "#8700af"},
"DarkOliveGreen1": color{"191", "#d7ff5f"},
"DarkOliveGreen2": color{"192", "#d7ff87"},
"DarkOliveGreen3": color{"155", "#afff5f"},
"DarkOliveGreen4": color{"107", "#87af5f"},
"DarkOliveGreen5": color{"113", "#87d75f"},
"DarkOliveGreen6": color{"149", "#afd75f"},
"DarkOrange1": color{"208", "#ff8700"},
"DarkOrange2": color{"130", "#af5f00"},
"DarkOrange3": color{"166", "#d75f00"},
"DarkRed1": color{"52", "#5f0000"},
"DarkRed2": color{"88", "#870000"},
"DarkSeaGreen1": color{"108", "#87af87"},
"DarkSeaGreen2": color{"158", "#afffd7"},
"DarkSeaGreen3": color{"193", "#d7ffaf"},
"DarkSeaGreen4": color{"151", "#afd7af"},
"DarkSeaGreen5": color{"157", "#afffaf"},
"DarkSeaGreen6": color{"115", "#87d7af"},
"DarkSeaGreen7": color{"150", "#afd787"},
"DarkSeaGreen8": color{"65", "#5f875f"},
"DarkSeaGreen9": color{"71", "#5faf5f"},
"DarkSlateGray1": color{"123", "#87ffff"},
"DarkSlateGray2": color{"87", "#5fffff"},
"DarkSlateGray3": color{"116", "#87d7d7"},
"DarkTurquoise": color{"44", "#00d7d7"},
"DarkViolet1": color{"128", "#af00d7"},
"DarkViolet2": color{"92", "#8700d7"},
"DeepPink1": color{"198", "#ff0087"},
"DeepPink2": color{"199", "#ff00af"},
"DeepPink3": color{"197", "#ff005f"},
"DeepPink4": color{"161", "#d7005f"},
"DeepPink5": color{"162", "#d70087"},
"DeepPink6": color{"125", "#af005f"},
"DeepPink7": color{"53", "#5f005f"},
"DeepPink8": color{"89", "#87005f"},
"DeepSkyBlue1": color{"39", "#00afff"},
"DeepSkyBlue2": color{"38", "#00afd7"},
"DeepSkyBlue3": color{"31", "#0087af"},
"DeepSkyBlue4": color{"32", "#0087d7"},
"DeepSkyBlue5": color{"23", "#005f5f"},
"DeepSkyBlue6": color{"24", "#005f87"},
"DeepSkyBlue7": color{"25", "#005faf"},
"DodgerBlue1": color{"33", "#0087ff"},
"DodgerBlue2": color{"27", "#005fff"},
"DodgerBlue3": color{"26", "#005fd7"},
"Fuchsia": color{"13", "#ff00ff"},
"Gold1": color{"220", "#ffd700"},
"Gold2": color{"142", "#afaf00"},
"Gold3": color{"178", "#d7af00"},
"Green1": color{"2", "#008000"},
"Green2": color{"46", "#00ff00"},
"Green3": color{"34", "#00af00"},
"Green4": color{"40", "#00d700"},
"Green5": color{"28", "#008700"},
"GreenYellow": color{"154", "#afff00"},
"Grey1": color{"8", "#808080"},
"Grey0": color{"16", "#000000"},
"Grey100": color{"231", "#ffffff"},
"Grey11": color{"234", "#1c1c1c"},
"Grey15": color{"235", "#262626"},
"Grey19": color{"236", "#303030"},
"Grey23": color{"237", "#3a3a3a"},
"Grey27": color{"238", "#444444"},
"Grey3": color{"232", "#080808"},
"Grey30": color{"239", "#4e4e4e"},
"Grey35": color{"240", "#585858"},
"Grey37": color{"59", "#5f5f5f"},
"Grey39": color{"241", "#626262"},
"Grey42": color{"242", "#6c6c6c"},
"Grey46": color{"243", "#767676"},
"Grey50": color{"244", "#808080"},
"Grey53": color{"102", "#878787"},
"Grey54": color{"245", "#8a8a8a"},
"Grey58": color{"246", "#949494"},
"Grey62": color{"247", "#9e9e9e"},
"Grey63": color{"139", "#af87af"},
"Grey66": color{"248", "#a8a8a8"},
"Grey69": color{"145", "#afafaf"},
"Grey7": color{"233", "#121212"},
"Grey70": color{"249", "#b2b2b2"},
"Grey74": color{"250", "#bcbcbc"},
"Grey78": color{"251", "#c6c6c6"},
"Grey82": color{"252", "#d0d0d0"},
"Grey84": color{"188", "#d7d7d7"},
"Grey85": color{"253", "#dadada"},
"Grey89": color{"254", "#e4e4e4"},
"Grey93": color{"255", "#eeeeee"},
"Honeydew": color{"194", "#d7ffd7"},
"HotPink1": color{"205", "#ff5faf"},
"HotPink2": color{"206", "#ff5fd7"},
"HotPink3": color{"169", "#d75faf"},
"HotPink4": color{"132", "#af5f87"},
"HotPink5": color{"168", "#d75f87"},
"IndianRed1": color{"131", "#af5f5f"},
"IndianRed2": color{"167", "#d75f5f"},
"IndianRed3": color{"203", "#ff5f5f"},
"IndianRed4": color{"204", "#ff5f87"},
"Khaki1": color{"228", "#ffff87"},
"Khaki2": color{"185", "#d7d75f"},
"LightCoral": color{"210", "#ff8787"},
"LightCyan2": color{"195", "#d7ffff"},
"LightCyan3": color{"152", "#afd7d7"},
"LightGoldenrod1": color{"227", "#ffff5f"},
"LightGoldenrod2": color{"186", "#d7d787"},
"LightGoldenrod3": color{"221", "#ffd75f"},
"LightGoldenrod4": color{"222", "#ffd787"},
"LightGoldenrod5": color{"179", "#d7af5f"},
"LightGreen1": color{"119", "#87ff5f"},
"LightGreen2": color{"120", "#87ff87"},
"LightPink1": color{"217", "#ffafaf"},
"LightPink2": color{"174", "#d78787"},
"LightPink3": color{"95", "#875f5f"},
"LightSalmon1": color{"216", "#ffaf87"},
"LightSalmon2": color{"137", "#af875f"},
"LightSalmon3": color{"173", "#d7875f"},
"LightSeaGreen": color{"37", "#00afaf"},
"LightSkyBlue1": color{"153", "#afd7ff"},
"LightSkyBlue2": color{"109", "#87afaf"},
"LightSkyBlue3": color{"110", "#87afd7"},
"LightSlateBlue": color{"105", "#8787ff"},
"LightSlateGrey": color{"103", "#8787af"},
"LightSteelBlue1": color{"147", "#afafff"},
"LightSteelBlue2": color{"189", "#d7d7ff"},
"LightSteelBlue3": color{"146", "#afafd7"},
"LightYellow": color{"187", "#d7d7af"},
"Lime": color{"10", "#00ff00"},
"Magenta1": color{"201", "#ff00ff"},
"Magenta2": color{"165", "#d700ff"},
"Magenta3": color{"200", "#ff00d7"},
"Magenta4": color{"127", "#af00af"},
"Magenta5": color{"163", "#d700af"},
"Magenta6": color{"164", "#d700d7"},
"Maroon": color{"1", "#800000"},
"MediumOrchid1": color{"134", "#af5fd7"},
"MediumOrchid2": color{"171", "#d75fff"},
"MediumOrchid3": color{"207", "#ff5fff"},
"MediumOrchid4": color{"133", "#af5faf"},
"MediumPurple1": color{"104", "#8787d7"},
"MediumPurple2": color{"141", "#af87ff"},
"MediumPurple3": color{"135", "#af5fff"},
"MediumPurple4": color{"140", "#af87d7"},
"MediumPurple5": color{"97", "#875faf"},
"MediumPurple6": color{"98", "#875fd7"},
"MediumPurple7": color{"60", "#5f5f87"},
"MediumSpringGreen": color{"49", "#00ffaf"},
"MediumTurquoise": color{"80", "#5fd7d7"},
"MediumVioletRed": color{"126", "#af0087"},
"MistyRose1": color{"224", "#ffd7d7"},
"MistyRose2": color{"181", "#d7afaf"},
"NavajoWhite1": color{"223", "#ffd7af"},
"NavajoWhite2": color{"144", "#afaf87"},
"Navy": color{"4", "#000080"},
"NavyBlue": color{"17", "#00005f"},
"Olive": color{"3", "#808000"},
"Orange1": color{"214", "#ffaf00"},
"Orange2": color{"172", "#d78700"},
"Orange3": color{"58", "#5f5f00"},
"Orange4": color{"94", "#875f00"},
"OrangeRed": color{"202", "#ff5f00"},
"Orchid1": color{"170", "#d75fd7"},
"Orchid2": color{"213", "#ff87ff"},
"Orchid3": color{"212", "#ff87d7"},
"PaleGreen1": color{"121", "#87ffaf"},
"PaleGreen2": color{"156", "#afff87"},
"PaleGreen3": color{"114", "#87d787"},
"PaleGreen4": color{"77", "#5fd75f"},
"PaleTurquoise1": color{"159", "#afffff"},
"PaleTurquoise2": color{"66", "#5f8787"},
"PaleVioletRed": color{"211", "#ff87af"},
"Pink1": color{"218", "#ffafd7"},
"Pink2": color{"175", "#d787af"},
"Plum1": color{"219", "#ffafff"},
"Plum2": color{"183", "#d7afff"},
"Plum3": color{"176", "#d787d7"},
"Plum4": color{"96", "#875f87"},
"Purple1": color{"129", "#af00ff"},
"Purple2": color{"5", "#800080"},
"Purple3": color{"93", "#8700ff"},
"Purple4": color{"56", "#5f00d7"},
"Purple5": color{"54", "#5f0087"},
"Purple6": color{"55", "#5f00af"},
"Red1": color{"9", "#ff0000"},
"Red2": color{"196", "#ff0000"},
"Red3": color{"124", "#af0000"},
"Red4": color{"160", "#d70000"},
"RosyBrown": color{"138", "#af8787"},
"RoyalBlue": color{"63", "#5f5fff"},
"Salmon": color{"209", "#ff875f"},
"SandyBrown": color{"215", "#ffaf5f"},
"SeaGreen1": color{"84", "#5fff87"},
"SeaGreen2": color{"85", "#5fffaf"},
"SeaGreen3": color{"83", "#5fff5f"},
"SeaGreen4": color{"78", "#5fd787"},
"Silver": color{"7", "#c0c0c0"},
"SkyBlue1": color{"117", "#87d7ff"},
"SkyBlue2": color{"111", "#87afff"},
"SkyBlue3": color{"74", "#5fafd7"},
"SlateBlue1": color{"99", "#875fff"},
"SlateBlue2": color{"61", "#5f5faf"},
"SlateBlue3": color{"62", "#5f5fd7"},
"SpringGreen1": color{"48", "#00ff87"},
"SpringGreen2": color{"42", "#00d787"},
"SpringGreen3": color{"47", "#00ff5f"},
"SpringGreen4": color{"35", "#00af5f"},
"SpringGreen5": color{"41", "#00d75f"},
"SpringGreen6": color{"29", "#00875f"},
"SteelBlue1": color{"67", "#5f87af"},
"SteelBlue2": color{"75", "#5fafff"},
"SteelBlue3": color{"81", "#5fd7ff"},
"SteelBlue4": color{"68", "#5f87d7"},
"Tan": color{"180", "#d7af87"},
"Teal": color{"6", "#008080"},
"Thistle1": color{"225", "#ffd7ff"},
"Thistle2": color{"182", "#d7afd7"},
"Turquoise1": color{"45", "#00d7ff"},
"Turquoise2": color{"30", "#008787"},
"Violet": color{"177", "#d787ff"},
"Wheat1": color{"229", "#ffffaf"},
"Wheat2": color{"101", "#87875f"},
"White": color{"15", "#ffffff"},
"Yellow1": color{"11", "#ffff00"},
"Yellow2": color{"226", "#ffff00"},
"Yellow3": color{"190", "#d7ff00"},
"Yellow4": color{"148", "#afd700"},
"Yellow5": color{"184", "#d7d700"},
"Yellow6": color{"100", "#878700"},
"Yellow7": color{"106", "#87af00"},
"FG": color{"fg", "fg"},
"BG": color{"bg", "bg"},
"NONE": color{"NONE", "NONE"},
}

View File

@ -0,0 +1,86 @@
" Name: {{.Name}} Colorscheme
" Author: robertmeta (on Github)
" URL: https://github.com/robertmeta/nofrils
" (see this url for latest release & screenshots)
" License: OSI approved MIT license
hi clear
if exists("syntax_on")
syntax reset
endif
let g:colors_name = "{{.Slug}}"
if !exists("g:nofrils_strbackgrounds")
let g:nofrils_strbackgrounds = 0
endif
if !exists("g:nofrils_heavycomments")
let g:nofrils_heavycomments = 0
endif
if !exists("g:nofrils_heavylinenumbers")
let g:nofrils_heavylinenumbers = 0
endif
" Baseline{{range .Rows}}
hi {{.Name}} {{if .FG.TermCode}}ctermfg={{.FG.TermCode}} {{end}}{{if .BG.TermCode}}ctermbg={{.BG.TermCode}} {{end}}{{if .FG.GuiCode}}guifg={{.FG.GuiCode}} {{end}}{{if .BG.GuiCode}}guibg={{.BG.GuiCode}} {{end}}{{if .Attr}}term={{.Attr}} cterm={{.Attr}} gui={{.Attr}}{{end}}{{end}}
" Helper Functions
function! NofrilsFocusComments()
hi Comment {{if .NormalRow.FG.TermCode}}ctermfg={{.NormalRow.FG.TermCode}} {{end}}{{if .NormalRow.BG.TermCode}}ctermbg={{.NormalRow.BG.TermCode}} {{end}}{{if .NormalRow.FG.GuiCode}}guifg={{.NormalRow.FG.GuiCode}} {{end}}{{if .NormalRow.BG.GuiCode}}guibg={{.NormalRow.BG.GuiCode}} {{end}}{{if .NormalRow.Attr}}term={{.NormalRow.Attr}} cterm={{.NormalRow.Attr}} gui={{.NormalRow.Attr}}{{end}}
if g:nofrils_heavycomments
hi Comment {{if .HeavyCommentRow.FG.TermCode}}ctermfg={{.HeavyCommentRow.FG.TermCode}} {{end}}{{if .HeavyCommentRow.BG.TermCode}}ctermbg={{.HeavyCommentRow.BG.TermCode}} {{end}}{{if .HeavyCommentRow.FG.GuiCode}}guifg={{.HeavyCommentRow.FG.GuiCode}} {{end}}{{if .HeavyCommentRow.BG.GuiCode}}guibg={{.HeavyCommentRow.BG.GuiCode}} {{end}}{{if .HeavyCommentRow.Attr}}term={{.HeavyCommentRow.Attr}} cterm={{.HeavyCommentRow.Attr}} gui={{.HeavyCommentRow.Attr}}{{end}}
end
hi Normal {{if .FadedRow.FG.TermCode}}ctermfg={{.FadedRow.FG.TermCode}} {{end}}{{if .FadedRow.BG.TermCode}}ctermbg={{.FadedRow.BG.TermCode}} {{end}}{{if .FadedRow.FG.GuiCode}}guifg={{.FadedRow.FG.GuiCode}} {{end}}{{if .FadedRow.BG.GuiCode}}guibg={{.FadedRow.BG.GuiCode}} {{end}}{{if .FadedRow.Attr}}term={{.FadedRow.Attr}} cterm={{.FadedRow.Attr}} gui={{.FadedRow.Attr}}{{end}}
hi LineNr {{if .FadedRow.FG.TermCode}}ctermfg={{.FadedRow.FG.TermCode}} {{end}}{{if .FadedRow.BG.TermCode}}ctermbg={{.FadedRow.BG.TermCode}} {{end}}{{if .FadedRow.FG.GuiCode}}guifg={{.FadedRow.FG.GuiCode}} {{end}}{{if .FadedRow.BG.GuiCode}}guibg={{.FadedRow.BG.GuiCode}} {{end}}{{if .FadedRow.Attr}}term={{.FadedRow.Attr}} cterm={{.FadedRow.Attr}} gui={{.FadedRow.Attr}}{{end}}
hi Character {{if .FadedRow.FG.TermCode}}ctermfg={{.FadedRow.FG.TermCode}} {{end}}{{if .FadedRow.BG.TermCode}}ctermbg={{.FadedRow.BG.TermCode}} {{end}}{{if .FadedRow.FG.GuiCode}}guifg={{.FadedRow.FG.GuiCode}} {{end}}{{if .FadedRow.BG.GuiCode}}guibg={{.FadedRow.BG.GuiCode}} {{end}}{{if .FadedRow.Attr}}term={{.FadedRow.Attr}} cterm={{.FadedRow.Attr}} gui={{.FadedRow.Attr}}{{end}}
hi String {{if .FadedRow.FG.TermCode}}ctermfg={{.FadedRow.FG.TermCode}} {{end}}{{if .FadedRow.BG.TermCode}}ctermbg={{.FadedRow.BG.TermCode}} {{end}}{{if .FadedRow.FG.GuiCode}}guifg={{.FadedRow.FG.GuiCode}} {{end}}{{if .FadedRow.BG.GuiCode}}guibg={{.FadedRow.BG.GuiCode}} {{end}}{{if .FadedRow.Attr}}term={{.FadedRow.Attr}} cterm={{.FadedRow.Attr}} gui={{.FadedRow.Attr}}{{end}}
endfunction
function! NofrilsFocusCode()
hi Normal {{if .NormalRow.FG.TermCode}}ctermfg={{.NormalRow.FG.TermCode}} {{end}}{{if .NormalRow.BG.TermCode}}ctermbg={{.NormalRow.BG.TermCode}} {{end}}{{if .NormalRow.FG.GuiCode}}guifg={{.NormalRow.FG.GuiCode}} {{end}}{{if .NormalRow.BG.GuiCode}}guibg={{.NormalRow.BG.GuiCode}} {{end}}{{if .NormalRow.Attr}}term={{.NormalRow.Attr}} cterm={{.NormalRow.Attr}} gui={{.NormalRow.Attr}}{{end}}
if g:nofrils_strbackgrounds
hi Character {{if .HeavyStringRow.FG.TermCode}}ctermfg={{.HeavyStringRow.FG.TermCode}} {{end}}{{if .HeavyStringRow.BG.TermCode}}ctermbg={{.HeavyStringRow.BG.TermCode}} {{end}}{{if .HeavyStringRow.FG.GuiCode}}guifg={{.HeavyStringRow.FG.GuiCode}} {{end}}{{if .HeavyStringRow.BG.GuiCode}}guibg={{.HeavyStringRow.BG.GuiCode}} {{end}}{{if .HeavyStringRow.Attr}}term={{.HeavyStringRow.Attr}} cterm={{.HeavyStringRow.Attr}} gui={{.HeavyStringRow.Attr}}{{end}}
hi String {{if .HeavyStringRow.FG.TermCode}}ctermfg={{.HeavyStringRow.FG.TermCode}} {{end}}{{if .HeavyStringRow.BG.TermCode}}ctermbg={{.HeavyStringRow.BG.TermCode}} {{end}}{{if .HeavyStringRow.FG.GuiCode}}guifg={{.HeavyStringRow.FG.GuiCode}} {{end}}{{if .HeavyStringRow.BG.GuiCode}}guibg={{.HeavyStringRow.BG.GuiCode}} {{end}}{{if .HeavyStringRow.Attr}}term={{.HeavyStringRow.Attr}} cterm={{.HeavyStringRow.Attr}} gui={{.HeavyStringRow.Attr}}{{end}}
end
hi Comment {{if .FadedRow.FG.TermCode}}ctermfg={{.FadedRow.FG.TermCode}} {{end}}{{if .FadedRow.BG.TermCode}}ctermbg={{.FadedRow.BG.TermCode}} {{end}}{{if .FadedRow.FG.GuiCode}}guifg={{.FadedRow.FG.GuiCode}} {{end}}{{if .FadedRow.BG.GuiCode}}guibg={{.FadedRow.BG.GuiCode}} {{end}}{{if .FadedRow.Attr}}term={{.FadedRow.Attr}} cterm={{.FadedRow.Attr}} gui={{.FadedRow.Attr}}{{end}}
hi LineNr {{if .FadedRow.FG.TermCode}}ctermfg={{.FadedRow.FG.TermCode}} {{end}}{{if .FadedRow.BG.TermCode}}ctermbg={{.FadedRow.BG.TermCode}} {{end}}{{if .FadedRow.FG.GuiCode}}guifg={{.FadedRow.FG.GuiCode}} {{end}}{{if .FadedRow.BG.GuiCode}}guibg={{.FadedRow.BG.GuiCode}} {{end}}{{if .FadedRow.Attr}}term={{.FadedRow.Attr}} cterm={{.FadedRow.Attr}} gui={{.FadedRow.Attr}}{{end}}
hi Character {{if .FadedRow.FG.TermCode}}ctermfg={{.FadedRow.FG.TermCode}} {{end}}{{if .FadedRow.BG.TermCode}}ctermbg={{.FadedRow.BG.TermCode}} {{end}}{{if .FadedRow.FG.GuiCode}}guifg={{.FadedRow.FG.GuiCode}} {{end}}{{if .FadedRow.BG.GuiCode}}guibg={{.FadedRow.BG.GuiCode}} {{end}}{{if .FadedRow.Attr}}term={{.FadedRow.Attr}} cterm={{.FadedRow.Attr}} gui={{.FadedRow.Attr}}{{end}}
hi String {{if .FadedRow.FG.TermCode}}ctermfg={{.FadedRow.FG.TermCode}} {{end}}{{if .FadedRow.BG.TermCode}}ctermbg={{.FadedRow.BG.TermCode}} {{end}}{{if .FadedRow.FG.GuiCode}}guifg={{.FadedRow.FG.GuiCode}} {{end}}{{if .FadedRow.BG.GuiCode}}guibg={{.FadedRow.BG.GuiCode}} {{end}}{{if .FadedRow.Attr}}term={{.FadedRow.Attr}} cterm={{.FadedRow.Attr}} gui={{.FadedRow.Attr}}{{end}}
endfunction
function! NofrilsNormal()
hi Normal {{if .NormalRow.FG.TermCode}}ctermfg={{.NormalRow.FG.TermCode}} {{end}}{{if .NormalRow.BG.TermCode}}ctermbg={{.NormalRow.BG.TermCode}} {{end}}{{if .NormalRow.FG.GuiCode}}guifg={{.NormalRow.FG.GuiCode}} {{end}}{{if .NormalRow.BG.GuiCode}}guibg={{.NormalRow.BG.GuiCode}} {{end}}{{if .NormalRow.Attr}}term={{.NormalRow.Attr}} cterm={{.NormalRow.Attr}} gui={{.NormalRow.Attr}}{{end}}
hi Character {{if .NormalRow.FG.TermCode}}ctermfg={{.NormalRow.FG.TermCode}} {{end}}{{if .NormalRow.BG.TermCode}}ctermbg={{.NormalRow.BG.TermCode}} {{end}}{{if .NormalRow.FG.GuiCode}}guifg={{.NormalRow.FG.GuiCode}} {{end}}{{if .NormalRow.BG.GuiCode}}guibg={{.NormalRow.BG.GuiCode}} {{end}}{{if .NormalRow.Attr}}term={{.NormalRow.Attr}} cterm={{.NormalRow.Attr}} gui={{.NormalRow.Attr}}{{end}}
hi String {{if .NormalRow.FG.TermCode}}ctermfg={{.NormalRow.FG.TermCode}} {{end}}{{if .NormalRow.BG.TermCode}}ctermbg={{.NormalRow.BG.TermCode}} {{end}}{{if .NormalRow.FG.GuiCode}}guifg={{.NormalRow.FG.GuiCode}} {{end}}{{if .NormalRow.BG.GuiCode}}guibg={{.NormalRow.BG.GuiCode}} {{end}}{{if .NormalRow.Attr}}term={{.NormalRow.Attr}} cterm={{.NormalRow.Attr}} gui={{.NormalRow.Attr}}{{end}}
" Optional Syntax Features
if g:nofrils_strbackgrounds
hi Character {{if .HeavyStringRow.FG.TermCode}}ctermfg={{.HeavyStringRow.FG.TermCode}} {{end}}{{if .HeavyStringRow.BG.TermCode}}ctermbg={{.HeavyStringRow.BG.TermCode}} {{end}}{{if .HeavyStringRow.FG.GuiCode}}guifg={{.HeavyStringRow.FG.GuiCode}} {{end}}{{if .HeavyStringRow.BG.GuiCode}}guibg={{.HeavyStringRow.BG.GuiCode}} {{end}}{{if .HeavyStringRow.Attr}}term={{.HeavyStringRow.Attr}} cterm={{.HeavyStringRow.Attr}} gui={{.HeavyStringRow.Attr}}{{end}}
hi String {{if .HeavyStringRow.FG.TermCode}}ctermfg={{.HeavyStringRow.FG.TermCode}} {{end}}{{if .HeavyStringRow.BG.TermCode}}ctermbg={{.HeavyStringRow.BG.TermCode}} {{end}}{{if .HeavyStringRow.FG.GuiCode}}guifg={{.HeavyStringRow.FG.GuiCode}} {{end}}{{if .HeavyStringRow.BG.GuiCode}}guibg={{.HeavyStringRow.BG.GuiCode}} {{end}}{{if .HeavyStringRow.Attr}}term={{.HeavyStringRow.Attr}} cterm={{.HeavyStringRow.Attr}} gui={{.HeavyStringRow.Attr}}{{end}}
end
hi Comment {{if .FadedRow.FG.TermCode}}ctermfg={{.FadedRow.FG.TermCode}} {{end}}{{if .FadedRow.BG.TermCode}}ctermbg={{.FadedRow.BG.TermCode}} {{end}}{{if .FadedRow.FG.GuiCode}}guifg={{.FadedRow.FG.GuiCode}} {{end}}{{if .FadedRow.BG.GuiCode}}guibg={{.FadedRow.BG.GuiCode}} {{end}}{{if .FadedRow.Attr}}term={{.FadedRow.Attr}} cterm={{.FadedRow.Attr}} gui={{.FadedRow.Attr}}{{end}}
if g:nofrils_heavycomments
hi Comment {{if .HeavyCommentRow.FG.TermCode}}ctermfg={{.HeavyCommentRow.FG.TermCode}} {{end}}{{if .HeavyCommentRow.BG.TermCode}}ctermbg={{.HeavyCommentRow.BG.TermCode}} {{end}}{{if .HeavyCommentRow.FG.GuiCode}}guifg={{.HeavyCommentRow.FG.GuiCode}} {{end}}{{if .HeavyCommentRow.BG.GuiCode}}guibg={{.HeavyCommentRow.BG.GuiCode}} {{end}}{{if .HeavyCommentRow.Attr}}term={{.HeavyCommentRow.Attr}} cterm={{.HeavyCommentRow.Attr}} gui={{.HeavyCommentRow.Attr}}{{end}}
end
hi LineNr {{if .FadedRow.FG.TermCode}}ctermfg={{.FadedRow.FG.TermCode}} {{end}}{{if .FadedRow.BG.TermCode}}ctermbg={{.FadedRow.BG.TermCode}} {{end}}{{if .FadedRow.FG.GuiCode}}guifg={{.FadedRow.FG.GuiCode}} {{end}}{{if .FadedRow.BG.GuiCode}}guibg={{.FadedRow.BG.GuiCode}} {{end}}{{if .FadedRow.Attr}}term={{.FadedRow.Attr}} cterm={{.FadedRow.Attr}} gui={{.FadedRow.Attr}}{{end}}
if g:nofrils_heavylinenumbers
hi LineNr {{if .HeavyLineRow.FG.TermCode}}ctermfg={{.HeavyLineRow.FG.TermCode}} {{end}}{{if .HeavyLineRow.BG.TermCode}}ctermbg={{.HeavyLineRow.BG.TermCode}} {{end}}{{if .HeavyLineRow.FG.GuiCode}}guifg={{.HeavyLineRow.FG.GuiCode}} {{end}}{{if .HeavyLineRow.BG.GuiCode}}guibg={{.HeavyLineRow.BG.GuiCode}} {{end}}{{if .HeavyLineRow.Attr}}term={{.HeavyLineRow.Attr}} cterm={{.HeavyLineRow.Attr}} gui={{.HeavyLineRow.Attr}}{{end}}
end
endfunction
" Command mappings
command! NofrilsDark :colo nofrils-dark
command! NofrilsLight :colo nofrils-light
command! NofrilsSepia :colo nofrils-sepia
command! NofrilsAcme :colo nofrils-acme
command! NofrilsFocusNormal :call NofrilsNormal()
command! NofrilsFocusCode :call NofrilsFocusCode()
command! NofrilsFocusComments :call NofrilsFocusComments()
" Setup normal settings
call NofrilsNormal()

View File

@ -58,19 +58,19 @@ their script to find them.
At the time of this writing, syntastic has checking plugins for ACPI At the time of this writing, syntastic has checking plugins for ACPI
Source Language, ActionScript, Ada, Ansible configurations, API Blueprint, Source Language, ActionScript, Ada, Ansible configurations, API Blueprint,
AppleScript, AsciiDoc, Assembly languages, BEMHTML, Bro, Bourne shell, C, AppleScript, AsciiDoc, Assembly languages, BEMHTML, Bro, Bourne shell, C, C++,
C++, C#, Cabal, Chef, CoffeeScript, Coco, Coq, CSS, Cucumber, CUDA, D, Dart, C#, Cabal, Chef, CMake, CoffeeScript, Coco, Coq, CSS, Cucumber, CUDA, D, Dart,
DocBook, Dockerfile, Dust, Elixir, Erlang, eRuby, Fortran, Gentoo metadata, DocBook, Dockerfile, Dust, Elixir, Erlang, eRuby, Fortran, Gentoo metadata,
GLSL, Go, Haml, Haskell, Haxe, Handlebars, HSS, HTML, Java, JavaScript, JSON, GLSL, Go, Haml, Haskell, Haxe, Handlebars, HSS, HTML, Java, JavaScript, JSON,
JSX, LESS, Lex, Limbo, LISP, LLVM intermediate language, Lua, Markdown, JSX, Julia, LESS, Lex, Limbo, LISP, LLVM intermediate language, Lua, Markdown,
MATLAB, Mercury, NASM, Nix, Objective-C, Objective-C++, OCaml, Perl, Perl MATLAB, Mercury, NASM, Nix, Objective-C, Objective-C++, OCaml, Perl, Perl
POD, PHP, gettext Portable Object, OS X and iOS property lists, Pug (formerly 6, Perl POD, PHP, gettext Portable Object, OS X and iOS property lists, Pug
Jade), Puppet, Python, QML, R, Racket, RDF TriG, RDF Turtle, Relax NG, (formerly Jade), Puppet, Python, QML, R, Racket, RDF TriG, RDF Turtle, Relax
reStructuredText, RPM spec, Ruby, SASS/SCSS, Scala, Slim, SML, Solidity, NG, reStructuredText, RPM spec, Ruby, SASS/SCSS, Scala, Slim, SML, Solidity,
Sphinx, SQL, Stylus, Tcl, TeX, Texinfo, Twig, TypeScript, Vala, Verilog, VHDL, Sphinx, SQL, Stylus, Tcl, TeX, Texinfo, Twig, TypeScript, Vala, Verilog, VHDL,
Vim help, VimL, xHtml, XML, XSLT, XQuery, YACC, YAML, YANG data models, z80, Vim help, VimL, Vue.js, xHtml, XML, XSLT, XQuery, YACC, YAML, YANG data models,
Zope page templates, and Zsh. See the [manual][checkers] for details about the z80, Zope page templates, and Zsh. See the [manual][checkers] for details about
corresponding supported checkers (`:help syntastic-checkers` in Vim). the corresponding supported checkers (`:help syntastic-checkers` in Vim).
A number of third-party Vim plugins also provide checkers for syntastic, for A number of third-party Vim plugins also provide checkers for syntastic, for
example: [merlin][merlin], [omnisharp-vim][omnisharp], [rust.vim][rust], example: [merlin][merlin], [omnisharp-vim][omnisharp], [rust.vim][rust],
@ -101,10 +101,10 @@ enabled.
Syntastic itself has rather relaxed requirements: it doesn't have any external Syntastic itself has rather relaxed requirements: it doesn't have any external
dependencies, and it needs a version of [Vim][vim] compiled with a few common dependencies, and it needs a version of [Vim][vim] compiled with a few common
features: `autocmd`, `eval`, `file_in_path`, `modify_fname`, `quickfix`, features: `autocmd`, `eval`, `file_in_path`, `modify_fname`, `quickfix`,
`reltime`, and `user_commands`. Not all possible combinations of features that `reltime`, `statusline`, and `user_commands`. Not all possible combinations of
include the ones above make equal sense on all operating systems, but Vim features that include the ones above make equal sense on all operating systems,
version 7 or later with the "normal", "big", or "huge" feature sets should be but Vim version 7 or later with the "normal", "big", or "huge" feature sets
fine. should be fine.
Syntastic should work with any modern plugin managers for Vim, such as Syntastic should work with any modern plugin managers for Vim, such as
[NeoBundle][neobundle], [Pathogen][pathogen], [Vim-Addon-Manager][vam], [NeoBundle][neobundle], [Pathogen][pathogen], [Vim-Addon-Manager][vam],
@ -437,15 +437,15 @@ scripts.
__4.12. Q. How can I check scripts written for different versions of Ruby?__ __4.12. Q. How can I check scripts written for different versions of Ruby?__
A. Install a Ruby version manager such as [rvm][rvm] or [rbenv][rbenv], A. Install a Ruby version manager such as [rvm][rvm] or [rbenv][rbenv],
activate the environment for the relevant version of Ruby, and install in it activate the relevant version of Ruby, and install in it the checkers you want
the checkers you want to use. Set `g:syntastic_ruby_checkers` accordingly in to use. Set `g:syntastic_ruby_checkers` accordingly in your `vimrc`, and run
your `vimrc`, and run [Vim][vim] from the virtual environment. [Vim][vim] under the relevant Ruby version.
If you're starting Vim from a desktop manager rather than from a terminal you If you're starting Vim from a desktop manager rather than from a terminal
might need to write wrapper scripts around your checkers, to activate the and depending on the version manager you use you might need to write wrapper
virtual environment before running the actual checks. Then you'll need to scripts around your checkers, to activate the relevant version of Ruby
point the relevant `g:syntastic_ruby_<checker>_exec` variables to the wrapper before running the actual checks. Then you'll need to point the relevant
scripts. `g:syntastic_ruby_<checker>_exec` variables to the wrapper scripts.
<a name="faqperl"></a> <a name="faqperl"></a>

View File

@ -65,6 +65,17 @@ function! syntastic#postprocess#guards(errors) abort " {{{2
return a:errors return a:errors
endfunction " }}}2 endfunction " }}}2
" convert error messages from UTF-8 to the current encoding
function! syntastic#postprocess#iconv(errors) abort " {{{2
if has('iconv') && &encoding !=# '' && &encoding !=# 'utf-8'
for e in a:errors
let e['text'] = iconv(e['text'], "utf-8", &encoding)
endfor
endif
return a:errors
endfunction " }}}2
" }}}1 " }}}1
let &cpo = s:save_cpo let &cpo = s:save_cpo

View File

@ -8,6 +8,37 @@ set cpo&vim
" Public functions {{{1 " Public functions {{{1
function! syntastic#preprocess#bandit(errors) abort " {{{2
let out = []
let json = s:_decode_JSON(join(a:errors, ''))
if type(json) == type({}) && has_key(json, 'results') && type(json['results']) == type([])
for issue in json['results']
if type(issue) == type({})
try
call add(out,
\ issue['filename'] . ':' .
\ issue['line_number'] . ':' .
\ { 'LOW': 'I', 'MEDIUM': 'W', 'HIGH': 'E' }[issue['issue_severity']] . ':' .
\ issue['test_id'][1:] . ':' .
\ issue['issue_text'] .
\ ' [' . issue['test_name'] . '] (confidence: ' . issue['issue_confidence'] . ')')
catch /\m^Vim\%((\a\+)\)\=:E716/
call syntastic#log#warn('checker python/bandit: unrecognized error item ' . string(issue))
let out = []
break
endtry
else
call syntastic#log#warn('checker python/bandit: unrecognized error item ' . string(issue))
endif
endfor
else
call syntastic#log#warn('checker python/bandit: unrecognized error format (crashed checker?)')
endif
return out
endfunction " }}}2
function! syntastic#preprocess#cabal(errors) abort " {{{2 function! syntastic#preprocess#cabal(errors) abort " {{{2
let out = [] let out = []
let star = 0 let star = 0
@ -98,6 +129,35 @@ function! syntastic#preprocess#dockerfile_lint(errors) abort " {{{2
return out return out
endfunction " }}}2 endfunction " }}}2
function! syntastic#preprocess#dscanner(errors) abort " {{{2
let idx = 0
while idx < len(a:errors) && a:errors[idx][0] !=# '{'
let idx += 1
endwhile
let errs = s:_decode_JSON(join(a:errors[idx :], ''))
let out = []
if type(errs) == type({}) && has_key(errs, 'issues') && type(errs['issues']) == type([])
for issue in errs['issues']
try
call add(out,
\ issue['fileName'] . ':' .
\ issue['line'] . ':' .
\ issue['column'] . ':' .
\ issue['message'] . ' [' . issue['key'] . ']')
catch /\m^Vim\%((\a\+)\)\=:E716/
call syntastic#log#warn('checker d/dscanner: unrecognized error item ' . string(issue))
let out = []
break
endtry
endfor
else
call syntastic#log#warn('checker d/dscanner: unrecognized error format (crashed checker?)')
endif
return out
endfunction " }}}2
function! syntastic#preprocess#flow(errors) abort " {{{2 function! syntastic#preprocess#flow(errors) abort " {{{2
let idx = 0 let idx = 0
while idx < len(a:errors) && a:errors[idx][0] !=# '{' while idx < len(a:errors) && a:errors[idx][0] !=# '{'
@ -204,13 +264,55 @@ function! syntastic#preprocess#perl(errors) abort " {{{2
return syntastic#util#unique(out) return syntastic#util#unique(out)
endfunction " }}}2 endfunction " }}}2
function! syntastic#preprocess#prospector(errors) abort " {{{2 function! syntastic#preprocess#perl6(errors) abort " {{{2
if a:errors[0] ==# 'Syntax OK'
return []
endif
let errs = s:_decode_JSON(join(a:errors, '')) let errs = s:_decode_JSON(join(a:errors, ''))
let out = [] let out = []
if type(errs) == type({}) && has_key(errs, 'messages') if type(errs) == type({})
if type(errs['messages']) == type([]) try
for e in errs['messages'] for val in values(errs)
let line = get(val, 'line', 0)
let pos = get(val, 'pos', 0)
if pos && has('byte_offset')
let line_pos = byte2line(pos + 1)
let column = line_pos > 0 ? pos - line2byte(line_pos) + 2 : 0
else
let column = 0
endif
call add(out, join([
\ get(val, 'filename', ''),
\ line,
\ column,
\ get(val, 'message', '') ], ':'))
endfor
catch /\m^Vim\%((\a\+)\)\=:E716/
call syntastic#log#warn('checker perl6/perl6: unrecognized error item ' . string(val))
let out = []
endtry
else
call syntastic#log#warn('checker perl6/perl6: unrecognized error format')
endif
return out
endfunction " }}}2
function! syntastic#preprocess#prospector(errors) abort " {{{2
let errs = join(a:errors, '')
if errs ==# ''
return []
endif
let json = s:_decode_JSON(errs)
let out = []
if type(json) == type({}) && has_key(json, 'messages')
if type(json['messages']) == type([])
for e in json['messages']
if type(e) == type({}) if type(e) == type({})
try try
if e['source'] ==# 'pylint' if e['source'] ==# 'pylint'
@ -240,6 +342,8 @@ function! syntastic#preprocess#prospector(errors) abort " {{{2
else else
call syntastic#log#warn('checker python/prospector: unrecognized error format (crashed checker?)') call syntastic#log#warn('checker python/prospector: unrecognized error format (crashed checker?)')
endif endif
else
call syntastic#log#warn('checker python/prospector: unrecognized error format (crashed checker?)')
endif endif
return out return out
@ -406,7 +510,7 @@ echomsg string(out)
endfunction " }}}2 endfunction " }}}2
function! syntastic#preprocess#tslint(errors) abort " {{{2 function! syntastic#preprocess#tslint(errors) abort " {{{2
return map(copy(a:errors), 'substitute(v:val, ''\m^\(([^)]\+)\)\s\(.\+\)$'', ''\2 \1'', "")') return map(copy(a:errors), 'substitute(v:val, ''\v^((ERROR|WARNING): )?\zs(\([^)]+\))\s(.+)$'', ''\4 \3'', "")')
endfunction " }}}2 endfunction " }}}2
function! syntastic#preprocess#validator(errors) abort " {{{2 function! syntastic#preprocess#validator(errors) abort " {{{2

View File

@ -76,7 +76,7 @@ function! syntastic#util#tmpdir() abort " {{{2
if (has('unix') || has('mac')) && executable('mktemp') && !has('win32unix') if (has('unix') || has('mac')) && executable('mktemp') && !has('win32unix')
" TODO: option "-t" to mktemp(1) is not portable " TODO: option "-t" to mktemp(1) is not portable
let tmp = $TMPDIR !=# '' ? $TMPDIR : $TMP !=# '' ? $TMP : '/tmp' let tmp = $TMPDIR !=# '' ? $TMPDIR : $TMP !=# '' ? $TMP : '/tmp'
let out = split(syntastic#util#system('mktemp -q -d ' . tmp . '/vim-syntastic-' . getpid() . '-XXXXXXXX'), "\n") let out = split(syntastic#util#system('mktemp -q -d ' . tmp . '/vim-syntastic-' . s:_fuzz() . '-XXXXXXXX'), "\n")
if v:shell_error == 0 && len(out) == 1 if v:shell_error == 0 && len(out) == 1
let tempdir = out[0] let tempdir = out[0]
endif endif
@ -84,13 +84,13 @@ function! syntastic#util#tmpdir() abort " {{{2
if tempdir ==# '' if tempdir ==# ''
if has('win32') || has('win64') if has('win32') || has('win64')
let tempdir = $TEMP . syntastic#util#Slash() . 'vim-syntastic-' . getpid() let tempdir = $TEMP . syntastic#util#Slash() . 'vim-syntastic-' . s:_fuzz()
elseif has('win32unix') elseif has('win32unix')
let tempdir = syntastic#util#CygwinPath('/tmp/vim-syntastic-' . getpid()) let tempdir = syntastic#util#CygwinPath('/tmp/vim-syntastic-' . s:_fuzz())
elseif $TMPDIR !=# '' elseif $TMPDIR !=# ''
let tempdir = $TMPDIR . '/vim-syntastic-' . getpid() let tempdir = $TMPDIR . '/vim-syntastic-' . s:_fuzz()
else else
let tempdir = '/tmp/vim-syntastic-' . getpid() let tempdir = '/tmp/vim-syntastic-' . s:_fuzz()
endif endif
try try
@ -132,9 +132,9 @@ endfunction " }}}2
" returns " returns
" "
" {'exe': '/usr/bin/perl', 'args': ['-f', '-bar']} " {'exe': '/usr/bin/perl', 'args': ['-f', '-bar']}
function! syntastic#util#parseShebang() abort " {{{2 function! syntastic#util#parseShebang(buf) abort " {{{2
for lnum in range(1, 5) for lnum in range(1, 5)
let line = getline(lnum) let line = get(getbufline(a:buf, lnum), 0, '')
if line =~# '^#!' if line =~# '^#!'
let line = substitute(line, '\v^#!\s*(\S+/env(\s+-\S+)*\s+)?', '', '') let line = substitute(line, '\v^#!\s*(\S+/env(\s+-\S+)*\s+)?', '', '')
let exe = matchstr(line, '\m^\S*\ze') let exe = matchstr(line, '\m^\S*\ze')
@ -253,7 +253,7 @@ endfunction " }}}2
function! syntastic#util#findFileInParent(what, where) abort " {{{2 function! syntastic#util#findFileInParent(what, where) abort " {{{2
let old_suffixesadd = &suffixesadd let old_suffixesadd = &suffixesadd
let &suffixesadd = '' let &suffixesadd = ''
let file = findfile(a:what, escape(a:where, ' ') . ';') let file = findfile(a:what, escape(a:where, ' ,') . ';')
let &suffixesadd = old_suffixesadd let &suffixesadd = old_suffixesadd
return file return file
endfunction " }}}2 endfunction " }}}2
@ -307,8 +307,14 @@ function! syntastic#util#fname2buf(fname) abort " {{{2
" this is a best-effort attempt to escape file patterns (cf. :h file-pattern) " this is a best-effort attempt to escape file patterns (cf. :h file-pattern)
" XXX it fails for filenames containing something like \{2,3} " XXX it fails for filenames containing something like \{2,3}
let buf = -1
for md in [':~:.', ':~', ':p'] for md in [':~:.', ':~', ':p']
let buf = bufnr('^' . escape(fnamemodify(a:fname, md), '\*?,{}[') . '$') try
" Older versions of Vim can throw E94 here
let buf = bufnr('^' . escape(fnamemodify(a:fname, md), '\*?,{}[') . '$')
catch
" catch everything
endtry
if buf != -1 if buf != -1
break break
endif endif
@ -401,9 +407,6 @@ function! syntastic#util#setLastTick(buf) abort " {{{2
call setbufvar(a:buf, 'syntastic_lasttick', getbufvar(a:buf, 'changedtick')) call setbufvar(a:buf, 'syntastic_lasttick', getbufvar(a:buf, 'changedtick'))
endfunction " }}}2 endfunction " }}}2
let s:_wid_base = 'syntastic_' . getpid() . '_' . reltimestr(g:_SYNTASTIC_START) . '_'
let s:_wid_pool = 0
" Add unique IDs to windows " Add unique IDs to windows
function! syntastic#util#setWids() abort " {{{2 function! syntastic#util#setWids() abort " {{{2
for tab in range(1, tabpagenr('$')) for tab in range(1, tabpagenr('$'))
@ -614,8 +617,18 @@ endfunction "}}}2
let s:_getbufvar = function(v:version > 703 || (v:version == 703 && has('patch831')) ? 'getbufvar' : 's:_getbufvar_dumb') let s:_getbufvar = function(v:version > 703 || (v:version == 703 && has('patch831')) ? 'getbufvar' : 's:_getbufvar_dumb')
lockvar s:_getbufvar lockvar s:_getbufvar
function! s:_fuzz_dumb() abort " {{{2
return 'tmp'
endfunction " }}}2
let s:_fuzz = function(exists('*getpid') ? 'getpid' : 's:_fuzz_dumb')
lockvar s:_fuzz
" }}}1 " }}}1
let s:_wid_base = 'syntastic_' . s:_fuzz() . '_' . reltimestr(g:_SYNTASTIC_START) . '_'
let s:_wid_pool = 0
let &cpo = s:save_cpo let &cpo = s:save_cpo
unlet s:save_cpo unlet s:save_cpo

File diff suppressed because it is too large Load Diff

View File

@ -70,7 +70,7 @@ CONTENTS *syntastic-contents*
1. Intro *syntastic-intro* 1. Intro *syntastic-intro*
Syntastic is a syntax checking plugin that runs files through external syntax Syntastic is a syntax checking plugin that runs files through external syntax
checkers. This can be done on demand, or automatically as files are saved linters. This can be done on demand, or automatically as files are saved
and opened. If syntax errors are detected, the user is notified and is happy and opened. If syntax errors are detected, the user is notified and is happy
because they didn't have to compile their code or execute their script to find because they didn't have to compile their code or execute their script to find
them. them.
@ -83,7 +83,7 @@ plugins and uses their output to provide the syntastic functionality.
Take a look at the list of supported filetypes and checkers: |syntastic-checkers|. Take a look at the list of supported filetypes and checkers: |syntastic-checkers|.
Note: This doc only deals with using syntastic. To learn how to write syntax Note: This doc only deals with using syntastic. To learn how to write syntax
checker integrations, see the guide on the GitHub wiki: checker integrations see the guide on the GitHub wiki:
https://github.com/vim-syntastic/syntastic/wiki/Syntax-Checker-Guide https://github.com/vim-syntastic/syntastic/wiki/Syntax-Checker-Guide
@ -98,7 +98,7 @@ You can see the list of checkers available for the current filetype with the
`:SyntasticInfo` command. `:SyntasticInfo` command.
You probably want to override the configured list of checkers for the You probably want to override the configured list of checkers for the
filetypes you use, and also change the arguments passed to specific checkers filetypes you use, and also change the arguments passed to specific linters
to suit your needs. See |syntastic-checker-options| below for details. to suit your needs. See |syntastic-checker-options| below for details.
Use `:SyntasticCheck` to manually check right now. Use `:Errors` to open the Use `:SyntasticCheck` to manually check right now. Use `:Errors` to open the
@ -143,7 +143,7 @@ activate/deactivate these features.
* The |location-list| can be populated with the errors for the associated * The |location-list| can be populated with the errors for the associated
buffer buffer
* Erroneous parts of lines can be highlighted (this functionality is only * Erroneous parts of lines can be highlighted (this functionality is only
provided by some syntax checkers) provided by some checkers)
* Balloons (if the |+balloon_eval| feature is compiled in) can be used to * Balloons (if the |+balloon_eval| feature is compiled in) can be used to
display error messages for erroneous lines when hovering the mouse over display error messages for erroneous lines when hovering the mouse over
them them
@ -164,7 +164,7 @@ When syntax errors are detected a flag will be shown. The content of the flag
is derived from the |'syntastic_stl_format'| option. is derived from the |'syntastic_stl_format'| option.
Please note that these settings might conflict with other Vim plugins that Please note that these settings might conflict with other Vim plugins that
change the way statusline works. Refer to the |syntastic-compatibility| notes change the way 'statusline' works. Refer to the |syntastic-compatibility| notes
below and to the respective plugins' documentation for possible solutions. below and to the respective plugins' documentation for possible solutions.
In particular see |syntastic-airline| below if you're using the "airline" Vim In particular see |syntastic-airline| below if you're using the "airline" Vim
@ -224,7 +224,7 @@ update the |location-list| automatically.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
2.4. Error highlighting *syntastic-highlighting* 2.4. Error highlighting *syntastic-highlighting*
Some checkers provide enough information for syntastic to be able to highlight Some linters provide enough information for syntastic to be able to highlight
errors. By default the SpellBad syntax highlight group is used to color errors, errors. By default the SpellBad syntax highlight group is used to color errors,
and the SpellCap group is used for warnings. If you wish to customize the and the SpellCap group is used for warnings. If you wish to customize the
colors for highlighting you can use the following groups: colors for highlighting you can use the following groups:
@ -611,8 +611,8 @@ There are also checker-specific variants of this option, providing finer
control. They are named |'syntastic_<filetype>_<checker>_quiet_messages'|. control. They are named |'syntastic_<filetype>_<checker>_quiet_messages'|.
For a particular checker, if both a |'syntastic_quiet_messages'| filter and For a particular checker, if both a |'syntastic_quiet_messages'| filter and
a checker-specific filter are present, they are both applied (to the list of a checker-specific filter are present, they are both applied to the list of
errors produced by the said checker). In case of conflicting values for the errors produced by the said checker. In case of conflicting values for the
same keys, the values of the checker-specific filters take precedence. same keys, the values of the checker-specific filters take precedence.
*filter-overrides* *filter-overrides*
@ -685,15 +685,15 @@ should be safe.
*'syntastic_exit_checks'* *'syntastic_exit_checks'*
Type: boolean Type: boolean
Default: 0 when running under "cmd.exe" on Windows, 1 otherwise Default: 0 when running under "cmd.exe" on Windows, 1 otherwise
Syntastic attempts to catch abnormal termination conditions from checkers by Syntastic attempts to catch abnormal termination conditions from linters by
looking at their exit codes. The "cmd.exe" shell on Windows make these checks looking at their exit codes. The "cmd.exe" shell on Windows make these checks
meaningless, by returning 1 to Vim when the checkers exit with non-zero codes. meaningless, by returning 1 to Vim when the linters exit with non-zero codes.
The above variable can be used to disable exit code checks in syntastic. The above variable can be used to disable exit code checks in syntastic.
*'syntastic_shell'* *'syntastic_shell'*
Type: string Type: string
Default: Vim's 'shell' Default: Vim's 'shell'
This is the (full path to) the shell syntastic will use to run the checkers. This is the (full path to) the shell syntastic will use to run the linters.
On UNIX and Mac OS-X this shell must accept Bourne-compatible syntax for On UNIX and Mac OS-X this shell must accept Bourne-compatible syntax for
file "stdout" and "stderr" redirections ">file" and "2>file". Examples of file "stdout" and "stderr" redirections ">file" and "2>file". Examples of
compatible shells are "zsh", "bash", "ksh", and of course the original Bourne compatible shells are "zsh", "bash", "ksh", and of course the original Bourne
@ -701,7 +701,7 @@ compatible shells are "zsh", "bash", "ksh", and of course the original Bourne
This shell is independent of Vim's 'shell', and it isn't used for interactive This shell is independent of Vim's 'shell', and it isn't used for interactive
operations. It must take care to initialize all environment variables needed operations. It must take care to initialize all environment variables needed
by the checkers you're using. Example: > by the linters you're using. Example: >
let g:syntastic_shell = "/bin/sh" let g:syntastic_shell = "/bin/sh"
< <
*'syntastic_nested_autocommands'* *'syntastic_nested_autocommands'*
@ -769,7 +769,7 @@ use this in an autocmd to configure specific checkers for particular paths: >
\ let b:syntastic_checkers = ["pylint"] | endif \ let b:syntastic_checkers = ["pylint"] | endif
< <
If neither |'g:syntastic_<filetype>_checkers'| nor |'b:syntastic_checkers'| If neither |'g:syntastic_<filetype>_checkers'| nor |'b:syntastic_checkers'|
is set, a default list of checker is used. Beware however that this list is set a default list of checkers is used. Beware however that this list is
deliberately kept minimal, for performance reasons. deliberately kept minimal, for performance reasons.
You can specify checkers for other filetypes anywhere in these lists, by You can specify checkers for other filetypes anywhere in these lists, by
@ -801,7 +801,7 @@ takes precedence over both 'b:syntastic_<filetype>_<checker>_exec' and
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
5.3. Configuring specific checkers *syntastic-config-makeprg* 5.3. Configuring specific checkers *syntastic-config-makeprg*
Checkers are run by constructing a command line and by passing it to a shell Linters are run by constructing a command line and by passing it to a shell
(see |'shell'| and |'syntastic_shell'|). In most cases this command line is (see |'shell'| and |'syntastic_shell'|). In most cases this command line is
built using an internal function named "makeprgBuild()", which provides a built using an internal function named "makeprgBuild()", which provides a
number of options that allow you to customise every part of the command that number of options that allow you to customise every part of the command that
@ -855,7 +855,7 @@ empty, you can set it to an empty string, e.g.: >
*'syntastic_<filetype>_<checker>_exe'* *'syntastic_<filetype>_<checker>_exe'*
The 'exe' option is special. Normally it is the same as the 'exec' attribute The 'exe' option is special. Normally it is the same as the 'exec' attribute
described above, but you can use it to add environment variables to the described above, but you can use it to add environment variables to the
command line, or to change the way the checker is run. For example this setup command line, or to change the way the linter is run. For example this setup
allows you to run PC-Lint on Linux, under Wine emulation: > allows you to run PC-Lint on Linux, under Wine emulation: >
let g:syntastic_c_pc_lint_exec = "wine" let g:syntastic_c_pc_lint_exec = "wine"
let g:syntastic_c_pc_lint_exe = "wine c:/path/to/lint-nt.exe" let g:syntastic_c_pc_lint_exe = "wine c:/path/to/lint-nt.exe"
@ -911,7 +911,7 @@ The syntax is of course identical to that of |syntastic_quiet_messages|.
*syntastic-debug* *syntastic-debug*
Syntastic can log a trace of its working to Vim's |message-history|. To verify Syntastic can log a trace of its working to Vim's |message-history|. To verify
the command line constructed by syntastic to run a checker, set the variable the command line constructed by syntastic to run a linter, set the variable
|'syntastic_debug'| to a non-zero value, run the checker, then run `:mes` to |'syntastic_debug'| to a non-zero value, run the checker, then run `:mes` to
display the messages, and look for "makeprg" in the output. display the messages, and look for "makeprg" in the output.
@ -919,7 +919,7 @@ From a user's perspective, the useful values for |'syntastic_debug'| are 1, 3,
and 33: and 33:
1 - logs syntastic's workflow 1 - logs syntastic's workflow
3 - logs workflow, checker's output, and |location-list| manipulations 3 - logs workflow, linter's output, and |location-list| manipulations
33 - logs workflow and checker-specific details (such as version checks). 33 - logs workflow and checker-specific details (such as version checks).
Debug logs can be saved to a file; see |'syntastic_debug_file'| for details. Debug logs can be saved to a file; see |'syntastic_debug_file'| for details.
@ -962,7 +962,7 @@ composite filetypes to simple ones using |'syntastic_filetype_map'|, e.g.: >
The standard plugin |netrw| allows Vim to transparently edit files over The standard plugin |netrw| allows Vim to transparently edit files over
network and inside archives. Currently syntastic doesn't support this mode network and inside archives. Currently syntastic doesn't support this mode
of operation. It can only check files that can be accessed directly by local of operation. It can only check files that can be accessed directly by local
checkers, without any translation or conversion. linters, without any translation or conversion.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
6.3. The 'shellslash' option *syntastic-shellslash* 6.3. The 'shellslash' option *syntastic-shellslash*
@ -1015,11 +1015,18 @@ also affect window sizes.)
7.1. airline *syntastic-airline* 7.1. airline *syntastic-airline*
The "airline" Vim plugin (https://github.com/vim-airline/vim-airline) comes The "airline" Vim plugin (https://github.com/vim-airline/vim-airline) comes
packaged with a mechanism of showing flags on the |'statusline'| according with an extension for showing syntastic-related flags on the |'statusline'|.
to your |'syntastic_stl_format'|. When using this plugin you do NOT need to
follow the recommendation outlined in the |syntastic-statusline-flag| section "airline" versions v0.8 and earlier use |'syntastic_stl_format'| to format the
above to modify your |'statusline'|; "airline" will make all necessary changes |'statusline'| flags. Newer versions ignore |'syntastic_stl_format'|, and require
automatically. you to set variables 'airline#extensions#syntastic#stl_format_err' and
'airline#extensions#syntastic#stl_format_warn' separately for errors and
warnings (with the same syntax as |'syntastic_stl_format'|) if you want to
change the flags from the defaults.
When using "airline" you should NOT follow the recommendation outlined in
the |syntastic-statusline-flag| section above to modify your |'statusline'|.
"airline" shall make all necessary changes automatically.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
7.2. The csh and tcsh shells *syntastic-csh* 7.2. The csh and tcsh shells *syntastic-csh*
@ -1159,7 +1166,7 @@ stick with |quickfix| lists: >
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
7.14. vim-virtualenv *syntastic-vim-virtualenv* 7.14. vim-virtualenv *syntastic-vim-virtualenv*
At the time of this writing, syntastic can't run checkers installed At the time of this writing, syntastic can't run linters installed
in Python virtual environments activated by "vim-virtualenv" (see in Python virtual environments activated by "vim-virtualenv" (see
https://github.com/jmcantrell/vim-virtualenv). This is a limitation of https://github.com/jmcantrell/vim-virtualenv). This is a limitation of
"vim-virtualenv". "vim-virtualenv".
@ -1181,7 +1188,7 @@ have to set |g:ycm_show_diagnostics_ui| to 0. E.g.: >
If you're running MacVim together with the "zsh" shell (http://www.zsh.org/) If you're running MacVim together with the "zsh" shell (http://www.zsh.org/)
you need to be aware that MacVim does not source your .zshrc file, but will you need to be aware that MacVim does not source your .zshrc file, but will
source a .zshenv file. Consequently you have to move any setup steps relevant source a .zshenv file. Consequently you have to move any setup steps relevant
to the checkers you're using from .zshrc to .zshenv, otherwise your checkers to the linters you're using from .zshrc to .zshenv, otherwise your linters
will misbehave when run by syntastic. This is particularly important for will misbehave when run by syntastic. This is particularly important for
programs such as "rvm" (https://rvm.io/) or "rbenv" (http://rbenv.org/), that programs such as "rvm" (https://rvm.io/) or "rbenv" (http://rbenv.org/), that
rely on setting environment variables. rely on setting environment variables.

View File

@ -19,7 +19,7 @@ if has('reltime')
lockvar! g:_SYNTASTIC_START lockvar! g:_SYNTASTIC_START
endif endif
let g:_SYNTASTIC_VERSION = '3.8.0-10' let g:_SYNTASTIC_VERSION = '3.8.0-97'
lockvar g:_SYNTASTIC_VERSION lockvar g:_SYNTASTIC_VERSION
" Sanity checks {{{1 " Sanity checks {{{1
@ -36,7 +36,8 @@ for s:feature in [
\ 'modify_fname', \ 'modify_fname',
\ 'quickfix', \ 'quickfix',
\ 'reltime', \ 'reltime',
\ 'user_commands' \ 'statusline',
\ 'user_commands',
\ ] \ ]
if !has(s:feature) if !has(s:feature)
call syntastic#log#error('need Vim compiled with feature ' . s:feature) call syntastic#log#error('need Vim compiled with feature ' . s:feature)
@ -67,6 +68,15 @@ else
endif endif
lockvar g:_SYNTASTIC_UNAME lockvar g:_SYNTASTIC_UNAME
" XXX Ugly hack to make g:_SYNTASTIC_UNAME available to :SyntasticInfo without
" polluting session namespaces
let g:syntastic_version =
\ g:_SYNTASTIC_VERSION .
\ ' (Vim ' . v:version . (has('nvim') ? ', Neovim' : '') . ', ' .
\ g:_SYNTASTIC_UNAME .
\ (has('gui') ? ', GUI' : '') . ')'
lockvar g:syntastic_version
" }}}1 " }}}1
" Defaults {{{1 " Defaults {{{1
@ -344,13 +354,6 @@ function! s:BufWinEnterHook(fname) abort " {{{2
endfunction " }}}2 endfunction " }}}2
function! s:VimEnterHook() abort " {{{2 function! s:VimEnterHook() abort " {{{2
let g:syntastic_version =
\ g:_SYNTASTIC_VERSION .
\ ' (Vim ' . v:version . (has('nvim') ? ', Neovim' : '') . ', ' .
\ g:_SYNTASTIC_UNAME .
\ (has('gui') ? ', GUI' : '') . ')'
lockvar g:syntastic_version
let buf = bufnr('') let buf = bufnr('')
call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS, call syntastic#log#debug(g:_SYNTASTIC_DEBUG_AUTOCOMMANDS,
\ 'autocmd: VimEnter, buffer ' . buf . ' = ' . string(bufname(buf)) . ', &buftype = ' . string(&buftype)) \ 'autocmd: VimEnter, buffer ' . buf . ' = ' . string(bufname(buf)) . ', &buftype = ' . string(&buftype))

View File

@ -19,6 +19,7 @@ let s:_DEFAULT_CHECKERS = {
\ 'c': ['gcc'], \ 'c': ['gcc'],
\ 'cabal': ['cabal'], \ 'cabal': ['cabal'],
\ 'chef': ['foodcritic'], \ 'chef': ['foodcritic'],
\ 'cmake': ['cmakelint'],
\ 'co': ['coco'], \ 'co': ['coco'],
\ 'cobol': ['cobc'], \ 'cobol': ['cobc'],
\ 'coffee': ['coffee', 'coffeelint'], \ 'coffee': ['coffee', 'coffeelint'],
@ -50,6 +51,7 @@ let s:_DEFAULT_CHECKERS = {
\ 'java': ['javac'], \ 'java': ['javac'],
\ 'javascript': ['jshint', 'jslint'], \ 'javascript': ['jshint', 'jslint'],
\ 'json': ['jsonlint', 'jsonval'], \ 'json': ['jsonlint', 'jsonval'],
\ 'julia': [],
\ 'less': ['lessc'], \ 'less': ['lessc'],
\ 'lex': ['flex'], \ 'lex': ['flex'],
\ 'limbo': ['limbo'], \ 'limbo': ['limbo'],
@ -66,6 +68,7 @@ let s:_DEFAULT_CHECKERS = {
\ 'objcpp': ['gcc'], \ 'objcpp': ['gcc'],
\ 'ocaml': ['camlp4o'], \ 'ocaml': ['camlp4o'],
\ 'perl': ['perlcritic'], \ 'perl': ['perlcritic'],
\ 'perl6': [],
\ 'php': ['php', 'phpcs', 'phpmd'], \ 'php': ['php', 'phpcs', 'phpmd'],
\ 'po': ['msgfmt'], \ 'po': ['msgfmt'],
\ 'pod': ['podchecker'], \ 'pod': ['podchecker'],
@ -101,6 +104,7 @@ let s:_DEFAULT_CHECKERS = {
\ 'verilog': ['verilator'], \ 'verilog': ['verilator'],
\ 'vhdl': ['ghdl'], \ 'vhdl': ['ghdl'],
\ 'vim': ['vimlint'], \ 'vim': ['vimlint'],
\ 'vue': ['pug_lint_vue', 'eslint'],
\ 'xhtml': ['tidy'], \ 'xhtml': ['tidy'],
\ 'xml': ['xmllint'], \ 'xml': ['xmllint'],
\ 'xslt': ['xmllint'], \ 'xslt': ['xmllint'],

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: ada.vim "File: ada.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Alfredo Di Napoli <alfredo.dinapoli@gmail.com> "Maintainer: Alfredo Di Napoli <alfredo.dinapoli@gmail.com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. " to the extent permitted by applicable law.

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: ansible_lint.vim "File: ansible_lint.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Erik Zaadi <erik.zaadi at gmail dot com> "Maintainer: Erik Zaadi <erik.zaadi at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: drafter.vim "File: drafter.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: LCD 47 <lcd047 at gmail dot com> "Maintainer: LCD 47 <lcd047 at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================== "==============================================================================
" FileName: applescript.vim " FileName: applescript.vim
" Desc: Syntax checking plugin for syntastic.vim " Desc: Syntax checking plugin for syntastic
" Author: Zhao Cai " Author: Zhao Cai
" Email: caizhaoff@gmail.com " Email: caizhaoff@gmail.com
" Version: 0.2.1 " Version: 0.2.1

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: asciidoc.vim "File: asciidoc.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: LCD 47 <lcd047 at gmail dot com> "Maintainer: LCD 47 <lcd047 at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -34,19 +34,20 @@ function! SyntaxCheckers_asm_gcc_IsAvailable() dict " {{{1
endfunction " }}}1 endfunction " }}}1
function! SyntaxCheckers_asm_gcc_GetLocList() dict " {{{1 function! SyntaxCheckers_asm_gcc_GetLocList() dict " {{{1
let buf = bufnr('')
return syntastic#c#GetLocList('asm', 'gcc', { return syntastic#c#GetLocList('asm', 'gcc', {
\ 'errorformat': \ 'errorformat':
\ '%-G%f:%s:,' . \ '%-G%f:%s:,' .
\ '%f:%l:%c: %trror: %m,' . \ '%f:%l:%c: %trror: %m,' .
\ '%f:%l:%c: %tarning: %m,' . \ '%f:%l:%c: %tarning: %m,' .
\ '%f:%l: %m', \ '%f:%l: %m',
\ 'main_flags': '-x assembler -fsyntax-only' . (g:syntastic_asm_generic ? '' : ' -masm=' . s:GetDialect()) }) \ 'main_flags': '-x assembler -fsyntax-only' . (g:syntastic_asm_generic ? '' : ' -masm=' . s:GetDialect(buf)) })
endfunction " }}}1 endfunction " }}}1
" Utilities {{{1 " Utilities {{{1
function! s:GetDialect() " {{{2 function! s:GetDialect(buf) " {{{2
return syntastic#util#var('asm_dialect', expand('%:e', 1) ==? 'asm' ? 'intel' : 'att') return syntastic#util#bufVar(a:buf, 'asm_dialect', fnamemodify(bufname(a:buf), ':e') ==? 'asm' ? 'intel' : 'att')
endfunction " }}}2 endfunction " }}}2
" }}}1 " }}}1

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: bemhtmllint.vim "File: bemhtmllint.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Sergej Tatarincev <s.tatarincev at yandex.ua> "Maintainer: Sergej Tatarincev <s.tatarincev at yandex.ua>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: bro.vim "File: bro.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Justin Azoff <justin.azoff@gmail.com> "Maintainer: Justin Azoff <justin.azoff@gmail.com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: checkpatch.vim "File: checkpatch.vim
"Description: Syntax checking plugin for syntastic.vim using checkpatch.pl "Description: Syntax checking plugin for syntastic using checkpatch.pl
"Maintainer: Daniel Walker <dwalker at fifo99 dot com> "Maintainer: Daniel Walker <dwalker at fifo99 dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: clang_check.vim "File: clang_check.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Benjamin Bannier <bbannier at gmail dot com> "Maintainer: Benjamin Bannier <bbannier at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: clang_tidy.vim "File: clang_tidy.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Benjamin Bannier <bbannier at gmail dot com> "Maintainer: Benjamin Bannier <bbannier at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: cppcheck.vim "File: cppcheck.vim
"Description: Syntax checking plugin for syntastic.vim using cppcheck.pl "Description: Syntax checking plugin for syntastic using cppcheck.pl
"Maintainer: LCD 47 <lcd047 at gmail dot com> "Maintainer: LCD 47 <lcd047 at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -0,0 +1,40 @@
"============================================================================
"File: cppclean.vim
"Description: Syntax checking plugin for syntastic
"Maintainer: LCD 47 <lcd047 at gmail dot com>
"License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute
" it and/or modify it under the terms of the Do What The Fuck You
" Want To Public License, Version 2, as published by Sam Hocevar.
" See http://sam.zoy.org/wtfpl/COPYING for more details.
"
"============================================================================
if exists('g:loaded_syntastic_c_cppclean_checker')
finish
endif
let g:loaded_syntastic_c_cppclean_checker = 1
let s:save_cpo = &cpo
set cpo&vim
function! SyntaxCheckers_c_cppclean_GetLocList() dict
let makeprg = self.makeprgBuild({})
let errorformat = '%f:%l: %m'
return SyntasticMake({
\ 'makeprg': makeprg,
\ 'errorformat': errorformat,
\ 'subtype': 'Style',
\ 'returns': [0, 1] })
endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'c',
\ 'name': 'cppclean' })
let &cpo = s:save_cpo
unlet s:save_cpo
" vim: set sw=4 sts=4 et fdm=marker:

View File

@ -0,0 +1,61 @@
"============================================================================
"File: flawfinder.vim
"Description: Syntax checking plugin for syntastic
"Maintainer: LCD 47 <lcd047 at gmail dot com>
"License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute
" it and/or modify it under the terms of the Do What The Fuck You
" Want To Public License, Version 2, as published by Sam Hocevar.
" See http://sam.zoy.org/wtfpl/COPYING for more details.
"
"============================================================================
if exists('g:loaded_syntastic_c_flawfinder_checker')
finish
endif
let g:loaded_syntastic_c_flawfinder_checker = 1
if !exists('g:syntastic_c_flawfinder_sort')
let g:syntastic_c_flawfinder_sort = 1
endif
if !exists('g:syntastic_c_flawfinder_thres')
let g:syntastic_c_flawfinder_thres = 3
endif
let s:save_cpo = &cpo
set cpo&vim
function! SyntaxCheckers_c_flawfinder_GetHighlightRegex(item)
let term = matchstr(a:item['text'], '\m^(\S\+)\s\+\zs\S\+\ze:')
return term !=# '' ? '\V\<' . escape(term, '\') . '\>' : ''
endfunction
function! SyntaxCheckers_c_flawfinder_GetLocList() dict
let makeprg = self.makeprgBuild({
\ 'args_after': '--columns --dataonly --singleline --quiet' })
let errorformat = '%f:%l:%c: [%n] %m'
let loclist = SyntasticMake({
\ 'makeprg': makeprg,
\ 'errorformat': errorformat,
\ 'subtype': 'Style',
\ 'returns': [0] })
for e in loclist
let e['type'] = e['nr'] < g:syntastic_{self.getFiletype()}_flawfinder_thres ? 'W' : 'E'
let e['nr'] = 0
endfor
return loclist
endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'c',
\ 'name': 'flawfinder' })
let &cpo = s:save_cpo
unlet s:save_cpo
" vim: set sw=4 sts=4 et fdm=marker:

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: c.vim "File: c.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Gregor Uhlenheuer <kongo2002 at gmail dot com> "Maintainer: Gregor Uhlenheuer <kongo2002 at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: make.vim "File: make.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Gregor Uhlenheuer <kongo2002 at gmail dot com> "Maintainer: Gregor Uhlenheuer <kongo2002 at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: oclint.vim "File: oclint.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: "UnCO" Lin <undercooled aT lavabit com> "Maintainer: "UnCO" Lin <undercooled aT lavabit com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: pc_lint.vim "File: pc_lint.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Steve Bragg <steve at empresseffects dot com> "Maintainer: Steve Bragg <steve at empresseffects dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute
@ -23,7 +23,8 @@ if !exists('g:syntastic_pc_lint_config_file')
endif endif
function! SyntaxCheckers_c_pc_lint_GetLocList() dict function! SyntaxCheckers_c_pc_lint_GetLocList() dict
let config = syntastic#util#findFileInParent(g:syntastic_pc_lint_config_file, expand('%:p:h', 1)) let buf = bufnr('')
let config = syntastic#util#findFileInParent(g:syntastic_pc_lint_config_file, fnamemodify(bufname(buf), ':p:h'))
call self.log('config =', config) call self.log('config =', config)
" -hFs1 - show filename, add space after messages, try to make message 1 line " -hFs1 - show filename, add space after messages, try to make message 1 line

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: sparse.vim "File: sparse.vim
"Description: Syntax checking plugin for syntastic.vim using sparse.pl "Description: Syntax checking plugin for syntastic using sparse.pl
"Maintainer: Daniel Walker <dwalker at fifo99 dot com> "Maintainer: Daniel Walker <dwalker at fifo99 dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: splint.vim "File: splint.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: LCD 47 <lcd047 at gmail dot com> "Maintainer: LCD 47 <lcd047 at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -31,6 +31,7 @@ function! SyntaxCheckers_cabal_cabal_GetHighlightRegex(item)
endfunction endfunction
function! SyntaxCheckers_cabal_cabal_GetLocList() dict function! SyntaxCheckers_cabal_cabal_GetLocList() dict
let buf = bufnr('')
let makeprg = self.getExecEscaped() . ' check' let makeprg = self.getExecEscaped() . ' check'
let errorformat = let errorformat =
@ -40,9 +41,9 @@ function! SyntaxCheckers_cabal_cabal_GetLocList() dict
return SyntasticMake({ return SyntasticMake({
\ 'makeprg': makeprg, \ 'makeprg': makeprg,
\ 'errorformat': errorformat, \ 'errorformat': errorformat,
\ 'cwd': expand('%:p:h', 1), \ 'cwd': fnamemodify(bufname(buf), ':p:h'),
\ 'preprocess': 'cabal', \ 'preprocess': 'cabal',
\ 'defaults': {'bufnr': bufnr('')} }) \ 'defaults': {'bufnr': buf} })
endfunction endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({ call g:SyntasticRegistry.CreateAndRegisterChecker({

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: foodcritic.vim "File: foodcritic.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Doug Ireton <dougireton@gmail.com> "Maintainer: Doug Ireton <dougireton@gmail.com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -0,0 +1,40 @@
"============================================================================
"File: cmakelint.vim
"Description: Syntax checking plugin for syntastic
"Maintainer: LCD 47 <lcd047 at gmail dot com>
"License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute
" it and/or modify it under the terms of the Do What The Fuck You
" Want To Public License, Version 2, as published by Sam Hocevar.
" See http://sam.zoy.org/wtfpl/COPYING for more details.
"
"============================================================================
if exists('g:loaded_syntastic_cmake_cmakelint_checker')
finish
endif
let g:loaded_syntastic_cmake_cmakelint_checker = 1
let s:save_cpo = &cpo
set cpo&vim
function! SyntaxCheckers_cmake_cmakelint_GetLocList() dict
let makeprg = self.makeprgBuild({})
let errorformat = '%f:%l: %m'
return SyntasticMake({
\ 'makeprg': makeprg,
\ 'errorformat': errorformat,
\ 'subtype': 'Style',
\ 'returns': [0, 1] })
endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'cmake',
\ 'name': 'cmakelint' })
let &cpo = s:save_cpo
unlet s:save_cpo
" vim: set sw=4 sts=4 et fdm=marker:

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: co.vim "File: co.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Andrew Kelley <superjoe30@gmail.com> "Maintainer: Andrew Kelley <superjoe30@gmail.com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: cobc.vim "File: cobc.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: LCD 47 <lcd047 at gmail dot com> "Maintainer: LCD 47 <lcd047 at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute
@ -33,7 +33,7 @@ endfunction
function! SyntaxCheckers_cobol_cobc_GetLocList() dict function! SyntaxCheckers_cobol_cobc_GetLocList() dict
return syntastic#c#GetLocList('cobol', 'cobc', { return syntastic#c#GetLocList('cobol', 'cobc', {
\ 'errorformat': '%f:%l: %trror: %m', \ 'errorformat': '%f:%\s%#%l: %trror: %m',
\ 'main_flags': '-fsyntax-only' }) \ 'main_flags': '-fsyntax-only' })
endfunction endfunction

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: coffee.vim "File: coffee.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Lincoln Stoll <l@lds.li> "Maintainer: Lincoln Stoll <l@lds.li>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -0,0 +1,44 @@
"============================================================================
"File: coffee_jshint.vim
"Description: Syntax checking plugin for syntastic
"Maintainer: John Krauss <john@johnkrauss.com>
"License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute
" it and/or modify it under the terms of the Do What The Fuck You
" Want To Public License, Version 2, as published by Sam Hocevar.
" See http://sam.zoy.org/wtfpl/COPYING for more details.
"
"============================================================================
if exists('g:loaded_syntastic_coffee_coffee_jshint_checker')
finish
endif
let g:loaded_syntastic_coffee_coffee_jshint_checker = 1
let s:save_cpo = &cpo
set cpo&vim
function! SyntaxCheckers_coffee_coffee_jshint_GetLocList() dict
let makeprg = self.makeprgBuild({})
let errorformat =
\ '%Q-%\{32\,},' .
\ '%E%l:%c: %m,' .
\ '%P%f'
return SyntasticMake({
\ 'makeprg': makeprg,
\ 'errorformat': errorformat,
\ 'returns': [0, 1] })
endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'coffee',
\ 'exec': 'coffee-jshint',
\ 'name': 'coffee_jshint' })
let &cpo = s:save_cpo
unlet s:save_cpo
" vim: set sw=4 sts=4 et fdm=marker:

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: coffeelint.vim "File: coffeelint.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Lincoln Stoll <l@lds.li> "Maintainer: Lincoln Stoll <l@lds.li>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: coqtop.vim "File: coqtop.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Matvey Aksenov <matvey.aksenov at gmail dot com> "Maintainer: Matvey Aksenov <matvey.aksenov at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: clang_check.vim "File: clang_check.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Benjamin Bannier <bbannier at gmail dot com> "Maintainer: Benjamin Bannier <bbannier at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: clang_tidy.vim "File: clang_tidy.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Benjamin Bannier <bbannier at gmail dot com> "Maintainer: Benjamin Bannier <bbannier at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: cppcheck.vim "File: cppcheck.vim
"Description: Syntax checking plugin for syntastic.vim using cppcheck.pl "Description: Syntax checking plugin for syntastic using cppcheck.pl
"Maintainer: LCD 47 <lcd047 at gmail dot com> "Maintainer: LCD 47 <lcd047 at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -0,0 +1,22 @@
"============================================================================
"File: cppclean.vim
"Description: Syntax checking plugin for syntastic
"Maintainer: Benjamin Bannier <bbannier at gmail dot com>
"License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute
" it and/or modify it under the terms of the Do What The Fuck You
" Want To Public License, Version 2, as published by Sam Hocevar.
" See http://sam.zoy.org/wtfpl/COPYING for more details.
"============================================================================
if exists('g:loaded_syntastic_cpp_cppclean_checker')
finish
endif
let g:loaded_syntastic_cpp_cppclean_checker = 1
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'cpp',
\ 'name': 'cppclean',
\ 'redirect': 'c/cppclean'})
" vim: set sw=4 sts=4 et fdm=marker:

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: cpplint.vim "File: cpplint.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: LCD 47 <lcd047 at gmail dot com> "Maintainer: LCD 47 <lcd047 at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -0,0 +1,26 @@
"============================================================================
"File: flawfinder.vim
"Description: Syntax checking plugin for syntastic
"Maintainer: Benjamin Bannier <bbannier at gmail dot com>
"License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute
" it and/or modify it under the terms of the Do What The Fuck You
" Want To Public License, Version 2, as published by Sam Hocevar.
" See http://sam.zoy.org/wtfpl/COPYING for more details.
"============================================================================
if exists('g:loaded_syntastic_cpp_flawfinder_checker')
finish
endif
let g:loaded_syntastic_cpp_flawfinder_checker = 1
if !exists('g:syntastic_cpp_flawfinder_thres')
let g:syntastic_cpp_flawfinder_thres = 3
endif
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'cpp',
\ 'name': 'flawfinder',
\ 'redirect': 'c/flawfinder'})
" vim: set sw=4 sts=4 et fdm=marker:

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: cpp.vim "File: cpp.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Gregor Uhlenheuer <kongo2002 at gmail dot com> "Maintainer: Gregor Uhlenheuer <kongo2002 at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: oclint.vim "File: oclint.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: "UnCO" Lin <undercooled aT lavabit com> "Maintainer: "UnCO" Lin <undercooled aT lavabit com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: pc_lint.vim "File: pc_lint.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Steve Bragg <steve at empresseffects dot com> "Maintainer: Steve Bragg <steve at empresseffects dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: verapp.vim "File: verapp.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Lucas Verney <phyks@phyks.me> "Maintainer: Lucas Verney <phyks@phyks.me>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: cs.vim "File: cs.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Daniel Walker <dwalker@fifo99.com> "Maintainer: Daniel Walker <dwalker@fifo99.com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: css.vim "File: css.vim
"Description: Syntax checking plugin for syntastic.vim using `csslint` CLI tool (http://csslint.net). "Description: Syntax checking plugin for syntastic using `csslint` CLI tool (http://csslint.net).
"Maintainer: Ory Band <oryband at gmail dot com> "Maintainer: Ory Band <oryband at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute
@ -33,6 +33,7 @@ function! SyntaxCheckers_css_csslint_GetLocList() dict
return SyntasticMake({ return SyntasticMake({
\ 'makeprg': makeprg, \ 'makeprg': makeprg,
\ 'errorformat': errorformat, \ 'errorformat': errorformat,
\ 'postprocess': ['guards'],
\ 'defaults': {'bufnr': bufnr('')} }) \ 'defaults': {'bufnr': bufnr('')} })
endfunction endfunction

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: phpcs.vim "File: phpcs.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: LCD 47 <lcd047 at gmail dot com> "Maintainer: LCD 47 <lcd047 at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: prettycss.vim "File: prettycss.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: LCD 47 <lcd047 at gmail dot com> "Maintainer: LCD 47 <lcd047 at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: recess.vim "File: recess.vim
"Description: Syntax checking plugin for syntastic.vim using `recess` "Description: Syntax checking plugin for syntastic using `recess`
" (http://twitter.github.io/recess/). " (http://twitter.github.io/recess/).
"Maintainer: Tim Carry <tim at pixelastic dot com> "Maintainer: Tim Carry <tim at pixelastic dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: stylelint.vim "File: stylelint.vim
"Description: Syntax checking plugin for syntastic.vim using `stylelint` "Description: Syntax checking plugin for syntastic using `stylelint`
" (https://github.com/stylelint/stylelint). " (https://github.com/stylelint/stylelint).
"Maintainer: Tim Carry <tim at pixelastic dot com> "Maintainer: Tim Carry <tim at pixelastic dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
@ -21,6 +21,8 @@ set cpo&vim
let s:args_after = { let s:args_after = {
\ 'css': '-f json', \ 'css': '-f json',
\ 'html': '-f json',
\ 'less': '-f json -s less',
\ 'scss': '-f json -s scss' } \ 'scss': '-f json -s scss' }
function! SyntaxCheckers_css_stylelint_GetLocList() dict function! SyntaxCheckers_css_stylelint_GetLocList() dict

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: cucumber.vim "File: cucumber.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com> "Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -18,7 +18,8 @@ let s:save_cpo = &cpo
set cpo&vim set cpo&vim
function! SyntaxCheckers_cuda_nvcc_GetLocList() dict function! SyntaxCheckers_cuda_nvcc_GetLocList() dict
let arch_flag = syntastic#util#var('cuda_arch') let buf = bufnr('')
let arch_flag = syntastic#util#bufVar(buf, 'cuda_arch')
if arch_flag !=# '' if arch_flag !=# ''
let arch_flag = '-arch=' . arch_flag let arch_flag = '-arch=' . arch_flag
call syntastic#log#oneTimeWarn('variable g:syntastic_cuda_arch is deprecated, ' . call syntastic#log#oneTimeWarn('variable g:syntastic_cuda_arch is deprecated, ' .
@ -27,9 +28,9 @@ function! SyntaxCheckers_cuda_nvcc_GetLocList() dict
let build_opts = {} let build_opts = {}
let dummy = '' let dummy = ''
if index(['h', 'hpp', 'cuh'], expand('%:e', 1), 0, 1) >= 0 if index(['h', 'hpp', 'cuh'], fnamemodify(bufname(buf), ':e'), 0, 1) >= 0
if syntastic#util#var('cuda_check_header', 0) if syntastic#util#bufVar(buf, 'cuda_check_header', 0)
let dummy = expand('%:p:h', 1) . syntastic#util#Slash() . '.syntastic_dummy.cu' let dummy = fnamemodify(bufname(buf), ':p:h') . syntastic#util#Slash() . '.syntastic_dummy.cu'
let build_opts = { let build_opts = {
\ 'exe_before': 'echo > ' . syntastic#util#shescape(dummy) . ' ;', \ 'exe_before': 'echo > ' . syntastic#util#shescape(dummy) . ' ;',
\ 'fname_before': '.syntastic_dummy.cu -include' } \ 'fname_before': '.syntastic_dummy.cu -include' }
@ -62,7 +63,18 @@ function! SyntaxCheckers_cuda_nvcc_GetLocList() dict
\ '%DMaking %*\a in %f,'. \ '%DMaking %*\a in %f,'.
\ '%f|%l| %m' \ '%f|%l| %m'
let loclist = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) let loclist = SyntasticMake({
\ 'makeprg': makeprg,
\ 'errorformat': errorformat,
\ 'defaults': {'type': 'E'} })
for e in loclist
let pat = matchstr(e['text'], '\m\c^\s*warning:\s*\zs.*')
if pat !=# ''
let e['text'] = pat
let e['type'] = 'W'
endif
endfor
if dummy !=# '' if dummy !=# ''
call delete(dummy) call delete(dummy)

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: d.vim "File: d.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Alfredo Di Napoli <alfredo dot dinapoli at gmail dot com> "Maintainer: Alfredo Di Napoli <alfredo dot dinapoli at gmail dot com>
"License: Based on the original work of Gregor Uhlenheuer and his "License: Based on the original work of Gregor Uhlenheuer and his
" cpp.vim checker so credits are dued. " cpp.vim checker so credits are dued.
@ -44,8 +44,9 @@ function! SyntaxCheckers_d_dmd_IsAvailable() dict " {{{1
endfunction " }}}1 endfunction " }}}1
function! SyntaxCheckers_d_dmd_GetLocList() dict " {{{1 function! SyntaxCheckers_d_dmd_GetLocList() dict " {{{1
let buf = bufnr('')
if !exists('g:syntastic_d_include_dirs') if !exists('g:syntastic_d_include_dirs')
let g:syntastic_d_include_dirs = s:GetIncludes(self, expand('%:p:h')) let g:syntastic_d_include_dirs = s:GetIncludes(self, fnamemodify(bufname(buf), ':p:h'))
endif endif
return syntastic#c#GetLocList('d', 'dmd', { return syntastic#c#GetLocList('d', 'dmd', {

View File

@ -0,0 +1,48 @@
"============================================================================
"File: dscanner.vim
"Description: Syntax checking plugin for syntastic
"Maintainer: ANtlord
"License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute
" it and/or modify it under the terms of the Do What The Fuck You
" Want To Public License, Version 2, as published by Sam Hocevar.
" See http://sam.zoy.org/wtfpl/COPYING for more details.
"
"============================================================================
if exists('g:loaded_syntastic_d_dscanner_checker')
finish
endif
let g:loaded_syntastic_d_dscanner_checker = 1
let s:save_cpo = &cpo
set cpo&vim
function! SyntaxCheckers_d_dscanner_GetHighlightRegex(i)
let term = matchstr(a:i['text'], '\m^.\{-}''\zs\S\+\ze''')
return term !=# '' ? '\V\<' . escape(term, '\') . '\>' : ''
endfunction
function! SyntaxCheckers_d_dscanner_GetLocList() dict
let makeprg = self.makeprgBuild({
\ 'args_after': '--report',
\ 'tail': '2>' . syntastic#util#DevNull() })
let errorformat = '%f:%l:%c:%m'
return SyntasticMake({
\ 'makeprg': makeprg,
\ 'errorformat': errorformat,
\ 'preprocess': 'dscanner',
\ 'subtype': 'Style',
\ 'returns': [0] })
endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'd',
\ 'name': 'dscanner' })
let &cpo = s:save_cpo
unlet s:save_cpo
" vim: set sw=4 sts=4 et fdm=marker:

View File

@ -30,7 +30,10 @@ function! SyntaxCheckers_dart_dartanalyzer_GetHighlightRegex(error)
endfunction endfunction
function! SyntaxCheckers_dart_dartanalyzer_GetLocList() dict function! SyntaxCheckers_dart_dartanalyzer_GetLocList() dict
let makeprg = self.makeprgBuild({ 'args_after': '--machine' }) if !exists('s:format_machine')
let s:format_machine = syntastic#util#versionIsAtLeast(self.getVersion(), [1, 23]) ? '--format=machine' : '--machine'
endif
let makeprg = self.makeprgBuild({ 'args_after': s:format_machine })
" Machine readable format looks like: " Machine readable format looks like:
" SEVERITY|TYPE|ERROR_CODE|FILENAME|LINE_NUMBER|COLUMN|LENGTH|MESSAGE " SEVERITY|TYPE|ERROR_CODE|FILENAME|LINE_NUMBER|COLUMN|LENGTH|MESSAGE

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: igor.vim "File: igor.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: LCD 47 <lcd047 at gmail dot com> "Maintainer: LCD 47 <lcd047 at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: docbk.vim "File: docbk.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com> "Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: dockerfile_lint.vim "File: dockerfile_lint.vim
"Description: Syntax checking plugin for syntastic.vim using dockerfile-lint "Description: Syntax checking plugin for syntastic using dockerfile-lint
" (https://github.com/projectatomic/dockerfile_lint). " (https://github.com/projectatomic/dockerfile_lint).
"Maintainer: Tim Carry <tim at pixelastic dot com> "Maintainer: Tim Carry <tim at pixelastic dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,

View File

@ -0,0 +1,41 @@
"============================================================================
"File: hadolint.vim
"Description: Dockerfile linter written in Haskell
" (http://hadolint.lukasmartinelli.ch/).
"Maintainer: Jesper B. Rosenkilde <jbr at humppa dot dk>
"License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute
" it and/or modify it under the terms of the Do What The Fuck You
" Want To Public License, Version 2, as published by Sam Hocevar.
" See http://sam.zoy.org/wtfpl/COPYING for more details.
"
"============================================================================
if exists('g:loaded_syntastic_dockerfile_hadolint_checker')
finish
endif
let g:loaded_syntastic_dockerfile_hadolint_checker = 1
let s:save_cpo = &cpo
set cpo&vim
function! SyntaxCheckers_dockerfile_hadolint_GetLocList() dict
let makeprg = self.makeprgBuild({})
let errorformat = '%W%f:%l %m'
return SyntasticMake({
\ 'makeprg': makeprg,
\ 'errorformat': errorformat,
\ 'subtype': 'Style',
\ 'returns': [0, 1] })
endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'dockerfile',
\ 'name': 'hadolint'})
let &cpo = s:save_cpo
unlet s:save_cpo
" vim: set sw=4 sts=4 et fdm=marker:

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: elixir.vim "File: elixir.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Richard Ramsden <rramsden at gmail dot com> "Maintainer: Richard Ramsden <rramsden at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute
@ -27,9 +27,10 @@ function! SyntaxCheckers_elixir_elixir_IsAvailable() dict
endfunction endfunction
function! SyntaxCheckers_elixir_elixir_GetLocList() dict function! SyntaxCheckers_elixir_elixir_GetLocList() dict
let buf = bufnr('')
let make_options = {} let make_options = {}
let compile_command = 'elixir' let compile_command = 'elixir'
let mix_file = syntastic#util#findFileInParent('mix.exs', expand('%:p:h', 1)) let mix_file = syntastic#util#findFileInParent('mix.exs', fnamemodify(bufname(buf), ':p:h'))
if filereadable(mix_file) if filereadable(mix_file)
let compile_command = 'mix compile' let compile_command = 'mix compile'

View File

@ -13,28 +13,58 @@ main([File]) ->
%% `rebar.config` is looked for, %% `rebar.config` is looked for,
%% but it is not necessarily the one in the project root. %% but it is not necessarily the one in the project root.
%% I.e. it may be one deeper in the project file hierarchy. %% I.e. it may be one deeper in the project file hierarchy.
RebarFile = rebar_file(Dir), Profile = which_compile_opts_profile(filename:absname(File)),
%% `rebar.config` might contain relative paths. CompileOpts = case which_build_tool(Dir, Profile) of
%% They are relative to the file! Not to the project root. {rebar, RebarFile} ->
RebarOpts = rebar_opts(Dir ++ "/" ++ RebarFile), %% `rebar.config` might contain relative paths.
%% They are relative to the file! Not to the project root.
%% rebar specific begin
rebar_opts(RebarFile);
%% rebar specific end
{erlangmk, ErlangMkDir} ->
%% Erlang.mk specific begin
erlangmk_opts(ErlangMkDir, Profile);
%% Erlang.mk specific end
undefined ->
fallback_opts()
end,
code:add_patha(filename:absname("ebin")), code:add_patha(filename:absname("ebin")),
%% `compile:file/2` requires the `{i, Path}` to be relative %% `compile:file/2` requires the `{i, Path}` to be relative
%% to CWD - no surprise here. %% to CWD - no surprise here.
compile:file(File, Defs ++ translate_paths(Dir, RebarOpts)); compile:file(File, Defs ++ translate_paths(Dir, CompileOpts));
main(_) -> main(_) ->
io:format("Usage: ~s <file>~n", [escript:script_name()]), io:format("Usage: ~s <file>~n", [escript:script_name()]),
halt(1). halt(1).
rebar_file(Dir) -> which_compile_opts_profile(File) ->
DirList = filename:split(Dir), case filename:basename(filename:dirname(File)) of
case lists:last(DirList) of "test" -> test;
"test" -> _ -> normal
"rebar.test.config";
_ ->
"rebar.config"
end. end.
which_build_tool(Dir, Profile) ->
%% rebar specific begin
RebarFile = rebar_file(Dir, Profile),
%% rebar specific end
case filelib:is_file(RebarFile) of
true ->
{rebar, RebarFile};
false ->
%% Erlang.mk specific begin
ErlangMk = erlangmk_file(Dir),
%% Erlang.mk specific end
case filelib:is_file(ErlangMk) of
true -> {erlangmk, Dir};
false -> undefined
end
end.
rebar_file(Dir, normal) -> filename:join(Dir, "rebar.config");
rebar_file(Dir, test) -> filename:join(Dir, "rebar.test.config").
erlangmk_file(Dir) -> filename:join(Dir, "erlang.mk").
rebar_opts(RebarFile) -> rebar_opts(RebarFile) ->
Dir = get_root(filename:dirname(RebarFile)), Dir = get_root(filename:dirname(RebarFile)),
case file:consult(RebarFile) of case file:consult(RebarFile) of
@ -54,6 +84,165 @@ rebar_opts(RebarFile) ->
rebar_opts("rebar.config") rebar_opts("rebar.config")
end. end.
erlangmk_opts(BaseDir, Profile) ->
Make =
case os:getenv("MAKE") of
false ->
case os:find_executable("gmake") of
false -> "make";
Path -> Path
end;
Cmd ->
case (lists:member($/, Cmd) orelse lists:member($\\, Cmd)) of
true -> Cmd;
false -> os:find_executable(Cmd)
end
end,
ERLC_OPTS_Target =
case Profile of
normal -> "show-ERLC_OPTS";
test -> "show-TEST_ERLC_OPTS"
end,
Args = [
"--no-print-directory",
"-C", BaseDir,
"show-ERL_LIBS",
ERLC_OPTS_Target
],
try
Port = erlang:open_port({spawn_executable, Make}, [
{args, Args},
exit_status, use_stdio, stderr_to_stdout]),
case erlangmk_port_receive_loop(Port, "", BaseDir) of
{error, _} ->
fallback_opts();
{ok, {ErlLibs, ErlcOpts}} ->
[code:add_pathsa(filelib:wildcard(
filename:join([ErlLib, "*", "ebin"])))
|| ErlLib <- ErlLibs],
ErlcOpts
end
catch
error:_ ->
fallback_opts()
end.
erlangmk_port_receive_loop(Port, Stdout, BaseDir) ->
receive
{Port, {exit_status, 0}} ->
erlangmk_format_opts(Stdout, BaseDir);
{Port, {exit_status, _}} ->
{error, {erlangmk, make_target_failure}};
{Port, {data, Out}} ->
erlangmk_port_receive_loop(Port, Stdout ++ Out, BaseDir)
end.
erlangmk_format_opts(Stdout, BaseDir) ->
case string:tokens(Stdout, "\n") of
[ErlLibsLine | ErlcOptsLines] ->
ErlLibs = erlangmk_format_erl_libs(ErlLibsLine),
ErlcOpts = erlangmk_format_erlc_opts(ErlcOptsLines, BaseDir),
{ok, {ErlLibs, ErlcOpts}};
_ ->
{error, {erlangmk, incorrect_output}}
end.
erlangmk_format_erl_libs(ErlLibsLine) ->
case os:type() of
{win32, _} -> string:tokens(ErlLibsLine, ";");
_ -> string:tokens(ErlLibsLine, ":")
end.
erlangmk_format_erlc_opts(ErlcOptsLines, BaseDir) ->
erlangmk_format_erlc_opts(ErlcOptsLines, [], BaseDir).
erlangmk_format_erlc_opts(["+" ++ Option | Rest], Opts, BaseDir) ->
case make_term(Option) of
{error, _} -> erlangmk_format_erlc_opts(Rest, Opts, BaseDir);
Opt -> erlangmk_format_erlc_opts(Rest, [Opt | Opts], BaseDir)
end;
erlangmk_format_erlc_opts(["-I" ++ Opt | Rest], Opts, BaseDir)
when Opt =/= "" ->
erlangmk_format_erlc_opts(["-I", Opt | Rest], Opts, BaseDir);
erlangmk_format_erlc_opts(["-I", [C | _] = Dir | Rest], Opts, BaseDir)
when C =/= $- andalso C =/= $+ ->
AbsDir = filename:absname(Dir, BaseDir),
erlangmk_format_erlc_opts(Rest, [{i, AbsDir} | Opts], BaseDir);
erlangmk_format_erlc_opts(["-W" ++ Warn | Rest], Opts, BaseDir)
when Warn =/= "" ->
erlangmk_format_erlc_opts(["-W", Warn | Rest], Opts, BaseDir);
erlangmk_format_erlc_opts(["-W", Warn | Rest], Opts, BaseDir) ->
case Warn of
"all" ->
erlangmk_format_erlc_opts(Rest, [{warn_format, 999} | Opts],
BaseDir);
"error" ->
erlangmk_format_erlc_opts(Rest, [warnings_as_errors | Opts],
BaseDir);
"" ->
erlangmk_format_erlc_opts(Rest, [{warn_format, 1} | Opts],
BaseDir);
_ ->
try list_to_integer(Warn) of
Level ->
erlangmk_format_erlc_opts(Rest,
[{warn_format, Level} | Opts], BaseDir)
catch
error:badarg ->
erlangmk_format_erlc_opts(Rest, Opts, BaseDir)
end
end;
erlangmk_format_erlc_opts(["-D" ++ Opt | Rest], Opts, BaseDir)
when Opt =/= "" ->
erlangmk_format_erlc_opts(["-D", Opt | Rest], Opts, BaseDir);
erlangmk_format_erlc_opts(["-D", [C | _] = Val0 | Rest], Opts, BaseDir)
when C =/= $- andalso C =/= $+ ->
{Key0, Val1} = split_at_equals(Val0, []),
Key = list_to_atom(Key0),
case Val1 of
[] ->
erlangmk_format_erlc_opts(Rest, [{d, Key} | Opts], BaseDir);
Val2 ->
case make_term(Val2) of
{error, _} ->
erlangmk_format_erlc_opts(Rest, Opts, BaseDir);
Val ->
erlangmk_format_erlc_opts(Rest, [{d, Key, Val} | Opts], BaseDir)
end
end;
erlangmk_format_erlc_opts([PathFlag, [_ | _] = Dir | Rest], Opts, BaseDir)
when PathFlag =:= "-pa" orelse PathFlag =:= "-pz" ->
AbsDir = filename:absname(Dir, BaseDir),
case PathFlag of
"-pa" -> code:add_patha(AbsDir);
"-pz" -> code:add_pathz(AbsDir)
end,
erlangmk_format_erlc_opts(Rest, Opts, BaseDir);
erlangmk_format_erlc_opts([_ | Rest], Opts, BaseDir) ->
erlangmk_format_erlc_opts(Rest, Opts, BaseDir);
erlangmk_format_erlc_opts([], Opts, _) ->
lists:reverse(Opts).
%% Function imported from erl_compile.erl from Erlang 19.1.
make_term(Str) ->
case erl_scan:string(Str) of
{ok, Tokens, _} ->
case erl_parse:parse_term(Tokens ++ [{dot, 1}]) of
{ok, Term} -> Term;
{error, Reason} -> {error, Reason}
end;
{error, Reason, _} ->
{error, Reason}
end.
%% Function imported from erl_compile.erl from Erlang 19.1.
split_at_equals([$=|T], Acc) ->
{lists:reverse(Acc),T};
split_at_equals([H|T], Acc) ->
split_at_equals(T, [H|Acc]);
split_at_equals([], Acc) ->
{lists:reverse(Acc),[]}.
fallback_opts() -> fallback_opts() ->
code:add_pathsa(filelib:wildcard("deps/*/ebin")), code:add_pathsa(filelib:wildcard("deps/*/ebin")),
code:add_pathsa(nested_app_ebins()), code:add_pathsa(nested_app_ebins()),

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: erlang.vim "File: erlang.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Pawel Salata <rockplayer.pl at gmail dot com> "Maintainer: Pawel Salata <rockplayer.pl at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute
@ -25,11 +25,13 @@ let s:save_cpo = &cpo
set cpo&vim set cpo&vim
function! SyntaxCheckers_erlang_escript_GetLocList() dict function! SyntaxCheckers_erlang_escript_GetLocList() dict
if expand('%:e', 1) ==# 'hrl' let buf = bufnr('')
if fnamemodify(bufname(buf), ':e') ==# 'hrl'
return [] return []
endif endif
let shebang = syntastic#util#parseShebang() let shebang = syntastic#util#parseShebang(buf)
if shebang['exe'] ==# 'escript' if shebang['exe'] ==# 'escript'
let args = '-s' let args = '-s'
let post_args = '' let post_args = ''
@ -39,7 +41,7 @@ function! SyntaxCheckers_erlang_escript_GetLocList() dict
endif endif
let makeprg = self.makeprgBuild({ let makeprg = self.makeprgBuild({
\ 'args_after': args, \ 'args_after': args,
\ 'fname': syntastic#util#shexpand('%:p'), \ 'fname': syntastic#util#shexpand(fnamemodify(bufname(buf), ':p')),
\ 'post_args_after': post_args }) \ 'post_args_after': post_args })
let errorformat = let errorformat =

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: ruby.vim "File: ruby.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com> "Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute
@ -31,7 +31,8 @@ function! SyntaxCheckers_eruby_ruby_GetLocList() dict
let s:ruby_new = syntastic#util#versionIsAtLeast(self.getVersion(), [1, 9]) let s:ruby_new = syntastic#util#versionIsAtLeast(self.getVersion(), [1, 9])
endif endif
let fname = "'" . escape(expand('%', 1), "\\'") . "'" let buf = bufnr('')
let fname = "'" . escape(bufname(buf), "\\'") . "'"
" TODO: encodings became useful in ruby 1.9 :) " TODO: encodings became useful in ruby 1.9 :)
if s:ruby_new if s:ruby_new
@ -69,7 +70,7 @@ function! SyntaxCheckers_eruby_ruby_GetLocList() dict
\ 'makeprg': makeprg, \ 'makeprg': makeprg,
\ 'errorformat': errorformat, \ 'errorformat': errorformat,
\ 'env': env, \ 'env': env,
\ 'defaults': { 'bufnr': bufnr(''), 'vcol': 1 } }) \ 'defaults': { 'bufnr': buf, 'vcol': 1 } })
endfunction endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({ call g:SyntasticRegistry.CreateAndRegisterChecker({

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: fortran.vim "File: fortran.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Karl Yngve Lervåg <karl.yngve@lervag.net> "Maintainer: Karl Yngve Lervåg <karl.yngve@lervag.net>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -28,8 +28,9 @@ let s:save_cpo = &cpo
set cpo&vim set cpo&vim
function! SyntaxCheckers_glsl_cgc_GetLocList() dict " {{{1 function! SyntaxCheckers_glsl_cgc_GetLocList() dict " {{{1
let buf = bufnr('')
let makeprg = self.makeprgBuild({ let makeprg = self.makeprgBuild({
\ 'args_before': '-oglsl -profile ' . s:GetProfile(), \ 'args_before': '-oglsl -profile ' . s:GetProfile(buf),
\ 'args': (exists('g:syntastic_glsl_options') ? ' ' . g:syntastic_glsl_options : '') }) \ 'args': (exists('g:syntastic_glsl_options') ? ' ' . g:syntastic_glsl_options : '') })
let errorformat = let errorformat =
@ -43,27 +44,11 @@ endfunction " }}}1
" Utilities {{{1 " Utilities {{{1
function! s:GetProfile() " {{{2 function! s:GetProfile(buf) " {{{2
let save_view = winsaveview() let profile = matchstr(get(filter(getbufline(a:buf, 1, 100), 'v:val =~# "\\m\\C^//\\s*profile:"'), 0, ''), '\m\C^//\s*profile:\s*\zs.*')
let old_foldenable = &foldenable if profile ==# ''
let old_lazyredraw = &lazyredraw let extensions = syntastic#util#bufVar(a:buf, 'glsl_extensions', s:glsl_extensions)
let profile = get(extensions, tolower(fnamemodify(bufname(a:buf), ':e')), 'gpu_vert')
let &lazyredraw = 1
let &foldenable = 0
call cursor(1, 1)
let magic = '\m\C^// profile:\s*'
let line = search(magic, 'c')
call winrestview(save_view)
let &foldenable = old_foldenable
let &lazyredraw = old_lazyredraw
if line
let profile = matchstr(getline(line), magic . '\zs.*')
else
let extensions = exists('g:syntastic_glsl_extensions') ? g:syntastic_glsl_extensions : s:glsl_extensions
let profile = get(extensions, tolower(expand('%:e', 1)), 'gpu_vert')
endif endif
return profile return profile

View File

@ -30,6 +30,7 @@ function! SyntaxCheckers_go_go_GetLocList() dict
if !exists('s:go_new') if !exists('s:go_new')
let s:go_new = syntastic#util#versionIsAtLeast(self.getVersion(self.getExecEscaped() . ' version'), [1, 5]) let s:go_new = syntastic#util#versionIsAtLeast(self.getVersion(self.getExecEscaped() . ' version'), [1, 5])
endif endif
let buf = bufnr('')
" Check with gofmt first, since `go build` and `go test` might not report " Check with gofmt first, since `go build` and `go test` might not report
" syntax errors in the current file if another file with syntax error is " syntax errors in the current file if another file with syntax error is
@ -53,14 +54,14 @@ function! SyntaxCheckers_go_go_GetLocList() dict
" Test files, i.e. files with a name ending in `_test.go`, are not " Test files, i.e. files with a name ending in `_test.go`, are not
" compiled by `go build`, therefore `go test` must be called for those. " compiled by `go build`, therefore `go test` must be called for those.
if match(expand('%', 1), '\m_test\.go$') == -1 if bufname(buf) =~# '\m_test\.go$'
let cmd = 'build'
let opts = syntastic#util#var('go_go_build_args', s:go_new ? '-buildmode=archive' : '')
let cleanup = 0
else
let cmd = 'test -c' let cmd = 'test -c'
let opts = syntastic#util#var('go_go_test_args', s:go_new ? '-buildmode=archive' : '') let opts = syntastic#util#bufVar(buf, 'go_go_test_args', s:go_new ? '-buildmode=archive' : '')
let cleanup = 1 let cleanup = 1
else
let cmd = 'build'
let opts = syntastic#util#bufVar(buf, 'go_go_build_args', s:go_new ? '-buildmode=archive' : '')
let cleanup = 0
endif endif
let opt_str = (type(opts) != type('') || opts !=# '') ? join(syntastic#util#argsescape(opts)) : opts let opt_str = (type(opts) != type('') || opts !=# '') ? join(syntastic#util#argsescape(opts)) : opts
let makeprg = self.getExecEscaped() . ' ' . cmd . ' ' . opt_str let makeprg = self.getExecEscaped() . ' ' . cmd . ' ' . opt_str
@ -82,12 +83,12 @@ function! SyntaxCheckers_go_go_GetLocList() dict
let errors = SyntasticMake({ let errors = SyntasticMake({
\ 'makeprg': makeprg, \ 'makeprg': makeprg,
\ 'errorformat': errorformat, \ 'errorformat': errorformat,
\ 'cwd': expand('%:p:h', 1), \ 'cwd': fnamemodify(bufname(buf), ':p:h'),
\ 'env': {'GOGC': 'off'}, \ 'env': {'GOGC': 'off'},
\ 'defaults': {'type': 'e'} }) \ 'defaults': {'type': 'e'} })
if cleanup if cleanup
call delete(expand('%:p:h', 1) . syntastic#util#Slash() . expand('%:p:h:t', 1) . '.test') call delete(fnamemodify(bufname(buf), ':p:h') . syntastic#util#Slash() . fnamemodify(bufname(buf), ':p:h') . '.test')
endif endif
return errors return errors

View File

@ -19,9 +19,10 @@ let s:save_cpo = &cpo
set cpo&vim set cpo&vim
function! SyntaxCheckers_go_gometalinter_GetLocList() dict function! SyntaxCheckers_go_gometalinter_GetLocList() dict
let buf = bufnr('')
let makeprg = self.makeprgBuild({ let makeprg = self.makeprgBuild({
\ 'args': '-t', \ 'args': '-t',
\ 'fname': syntastic#util#shexpand('%:p:h') }) \ 'fname': syntastic#util#shescape(fnamemodify(bufname(buf), ':p:h')) })
let errorformat = let errorformat =
\ '%f:%l:%c:%trror: %m,' . \ '%f:%l:%c:%trror: %m,' .

View File

@ -19,8 +19,25 @@ let s:save_cpo = &cpo
set cpo&vim set cpo&vim
function! SyntaxCheckers_go_gotype_GetLocList() dict function! SyntaxCheckers_go_gotype_GetLocList() dict
let buf = bufnr('')
if !exists('s:go_new')
let command = syntastic#util#shescape(syntastic#util#bufVar(buf, 'go_go_exec', 'go')) . ' version'
let version_output = syntastic#util#system(command)
call self.log('finding go version: ' . string(command) . ': ' .
\ string(split(version_output, "\n", 1)) .
\ (v:shell_error ? ' (exit code ' . v:shell_error . ')' : ''))
let parsed_ver = syntastic#util#parseVersion(version_output)
if len(parsed_ver)
let s:go_new = syntastic#util#versionIsAtLeast(parsed_ver, [1, 8])
else
call syntastic#log#error("checker " . self.getCName() . ": can't parse go version (abnormal termination?)")
return []
endif
endif
let makeprg = self.makeprgBuild({ let makeprg = self.makeprgBuild({
\ 'args': (expand('%', 1) =~# '\m_test\.go$' ? '-a' : ''), \ 'args': (bufname(buf) =~# '\m_test\.go$' ? (s:go_new ? '-t' : '-a') : ''),
\ 'fname': '.' }) \ 'fname': '.' })
let errorformat = let errorformat =
@ -34,7 +51,7 @@ function! SyntaxCheckers_go_gotype_GetLocList() dict
return SyntasticMake({ return SyntasticMake({
\ 'makeprg': makeprg, \ 'makeprg': makeprg,
\ 'errorformat': errorformat, \ 'errorformat': errorformat,
\ 'cwd': expand('%:p:h', 1), \ 'cwd': fnamemodify(bufname(buf), ':p:h'),
\ 'defaults': {'type': 'e'} }) \ 'defaults': {'type': 'e'} })
endfunction endfunction

View File

@ -19,6 +19,7 @@ let s:save_cpo = &cpo
set cpo&vim set cpo&vim
function! SyntaxCheckers_go_govet_GetLocList() dict function! SyntaxCheckers_go_govet_GetLocList() dict
let buf = bufnr('')
let makeprg = self.getExecEscaped() . ' vet' let makeprg = self.getExecEscaped() . ' vet'
let errorformat = let errorformat =
@ -33,7 +34,7 @@ function! SyntaxCheckers_go_govet_GetLocList() dict
return SyntasticMake({ return SyntasticMake({
\ 'makeprg': makeprg, \ 'makeprg': makeprg,
\ 'errorformat': errorformat, \ 'errorformat': errorformat,
\ 'cwd': expand('%:p:h', 1), \ 'cwd': fnamemodify(bufname(buf), ':p:h'),
\ 'defaults': {'type': 'w'} }) \ 'defaults': {'type': 'w'} })
endfunction endfunction

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: haml.vim "File: haml.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com> "Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: handlebars.vim "File: handlebars.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com> "Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: hdevtools.vim "File: hdevtools.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Anthony Carapetis <anthony.carapetis at gmail dot com> "Maintainer: Anthony Carapetis <anthony.carapetis at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute
@ -25,9 +25,10 @@ function! SyntaxCheckers_haskell_hdevtools_GetLocList() dict
let g:syntastic_haskell_hdevtools_args = g:hdevtools_options let g:syntastic_haskell_hdevtools_args = g:hdevtools_options
endif endif
let buf = bufnr('')
let makeprg = self.makeprgBuild({ let makeprg = self.makeprgBuild({
\ 'exe_after': 'check', \ 'exe_after': 'check',
\ 'fname': syntastic#util#shexpand('%:p') }) \ 'fname': syntastic#util#shescape(fnamemodify(bufname(buf), ':p')) })
let errorformat = let errorformat =
\ '%-Z %#,'. \ '%-Z %#,'.

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: hlint.vim "File: hlint.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Nicolas Wu <nicolas.wu at gmail dot com> "Maintainer: Nicolas Wu <nicolas.wu at gmail dot com>
"License: BSD "License: BSD
"============================================================================ "============================================================================
@ -14,8 +14,9 @@ let s:save_cpo = &cpo
set cpo&vim set cpo&vim
function! SyntaxCheckers_haskell_hlint_GetLocList() dict function! SyntaxCheckers_haskell_hlint_GetLocList() dict
let buf = bufnr('')
let makeprg = self.makeprgBuild({ let makeprg = self.makeprgBuild({
\ 'fname': syntastic#util#shexpand('%:p')}) \ 'fname': syntastic#util#shescape(fnamemodify(bufname(buf), ':p')) })
let errorformat = let errorformat =
\ '%E%f:%l:%v: Error while reading hint file\, %m,' . \ '%E%f:%l:%v: Error while reading hint file\, %m,' .

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: scan.vim "File: scan.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: LCD 47 <lcd047 at gmail dot com> "Maintainer: LCD 47 <lcd047 at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: haxe.vim "File: haxe.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: David Bernard <david.bernard.31 at gmail dot com> "Maintainer: David Bernard <david.bernard.31 at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute
@ -19,12 +19,10 @@ let s:save_cpo = &cpo
set cpo&vim set cpo&vim
function! SyntaxCheckers_haxe_haxe_GetLocList() dict function! SyntaxCheckers_haxe_haxe_GetLocList() dict
if exists('b:vaxe_hxml') let buf = bufnr('')
let hxml = b:vaxe_hxml let hxml = syntastic#util#bufRawVar(buf, 'vaxe_hxml')
elseif exists('g:vaxe_hxml') if hxml ==# ''
let hxml = g:vaxe_hxml let hxml = syntastic#util#findGlobInParent('*.hxml', fnamemodify(bufname(buf), ':p:h'))
else
let hxml = syntastic#util#findGlobInParent('*.hxml', expand('%:p:h', 1))
endif endif
let hxml = fnamemodify(hxml, ':p') let hxml = fnamemodify(hxml, ':p')
@ -32,9 +30,12 @@ function! SyntaxCheckers_haxe_haxe_GetLocList() dict
if hxml !=# '' if hxml !=# ''
let makeprg = self.makeprgBuild({ let makeprg = self.makeprgBuild({
\ 'fname': syntastic#util#shescape(fnamemodify(hxml, ':t')) }) \ 'fname': syntastic#util#shescape(fnamemodify(hxml, ':t')),
\ 'args_after' : ['--no-output'] })
let errorformat = '%E%f:%l: characters %c-%n : %m' let errorformat =
\ '%W%f:%l: characters %c-%n : Warning : %m,' .
\ '%E%f:%l: characters %c-%n : %m'
let loclist = SyntasticMake({ let loclist = SyntasticMake({
\ 'makeprg': makeprg, \ 'makeprg': makeprg,

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: hss.vim "File: hss.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Justin Donaldson (jdonaldson@gmail.com) "Maintainer: Justin Donaldson (jdonaldson@gmail.com)
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -0,0 +1,25 @@
"============================================================================
"File: stylelint.vim
"Description: Syntax checking plugin for syntastic using `stylelint`
" (https://github.com/stylelint/stylelint).
"Maintainer: Tim Carry <tim at pixelastic dot com>
"License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute
" it and/or modify it under the terms of the Do What The Fuck You
" Want To Public License, Version 2, as published by Sam Hocevar.
" See http://sam.zoy.org/wtfpl/COPYING for more details.
"
"============================================================================
if exists('g:loaded_syntastic_html_stylelint_checker')
finish
endif
let g:loaded_syntastic_html_stylelint_checker = 1
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'html',
\ 'name': 'stylelint',
\ 'redirect': 'css/stylelint'})
" vim: set sw=4 sts=4 et fdm=marker:

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: tidy.vim "File: tidy.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com> "Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: validator.vim "File: validator.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: LCD 47 <lcd047 at gmail dot com> "Maintainer: LCD 47 <lcd047 at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute
@ -31,7 +31,8 @@ let s:save_cpo = &cpo
set cpo&vim set cpo&vim
function! SyntaxCheckers_html_validator_GetLocList() dict function! SyntaxCheckers_html_validator_GetLocList() dict
let fname = syntastic#util#shexpand('%') let buf = bufnr('')
let fname = syntastic#util#shescape(fnamemodify(bufname(buf), ':p'))
let makeprg = self.getExecEscaped() . ' -q -L -s --compressed -F out=gnu -F asciiquotes=yes' . let makeprg = self.getExecEscaped() . ' -q -L -s --compressed -F out=gnu -F asciiquotes=yes' .
\ (g:syntastic_html_validator_parser !=# '' ? ' -F parser=' . g:syntastic_html_validator_parser : '') . \ (g:syntastic_html_validator_parser !=# '' ? ' -F parser=' . g:syntastic_html_validator_parser : '') .
\ (g:syntastic_html_validator_nsfilter !=# '' ? ' -F nsfilter=' . g:syntastic_html_validator_nsfilter : '') . \ (g:syntastic_html_validator_nsfilter !=# '' ? ' -F nsfilter=' . g:syntastic_html_validator_nsfilter : '') .

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: w3.vim "File: w3.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com> "Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute
@ -23,8 +23,9 @@ let s:save_cpo = &cpo
set cpo&vim set cpo&vim
function! SyntaxCheckers_html_w3_GetLocList() dict function! SyntaxCheckers_html_w3_GetLocList() dict
let buf = bufnr('')
let makeprg = self.getExecEscaped() . ' -q -L -s -F output=json ' . let makeprg = self.getExecEscaped() . ' -q -L -s -F output=json ' .
\ '-F uploaded_file=@' . syntastic#util#shexpand('%:p') . '\;type=text/html ' . \ '-F uploaded_file=@' . syntastic#util#shescape(fnamemodify(bufname(buf), ':p')) . '\;type=text/html ' .
\ g:syntastic_html_w3_api \ g:syntastic_html_w3_api
let errorformat = let errorformat =

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: checkstyle.vim "File: checkstyle.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Dmitry Geurkov <d.geurkov at gmail dot com> "Maintainer: Dmitry Geurkov <d.geurkov at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute
@ -40,6 +40,8 @@ endfunction
function! SyntaxCheckers_java_checkstyle_GetLocList() dict function! SyntaxCheckers_java_checkstyle_GetLocList() dict
let buf = bufnr('')
" classpath " classpath
if !exists('s:sep') if !exists('s:sep')
let s:sep = syntastic#util#isRunningWindows() || has('win32unix') ? ';' : ':' let s:sep = syntastic#util#isRunningWindows() || has('win32unix') ? ';' : ':'
@ -58,7 +60,7 @@ function! SyntaxCheckers_java_checkstyle_GetLocList() dict
\ '-f', 'xml' ]) \ '-f', 'xml' ])
" filename " filename
let fname = syntastic#util#shescape( expand('%:p:h', 1) . syntastic#util#Slash() . expand('%:t', 1) ) let fname = syntastic#util#shescape( fnamemodify(bufname(buf), ':p:h') . syntastic#util#Slash() . fnamemodify(bufname(buf), ':t') )
if has('win32unix') if has('win32unix')
let fname = substitute(syntastic#util#system('cygpath -m ' . fname), '\m\%x00', '', 'g') let fname = substitute(syntastic#util#system('cygpath -m ' . fname), '\m\%x00', '', 'g')
endif endif

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: javac.vim "File: javac.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Jochen Keil <jochen.keil at gmail dot com> "Maintainer: Jochen Keil <jochen.keil at gmail dot com>
" Dmitry Geurkov <d.geurkov at gmail dot com> " Dmitry Geurkov <d.geurkov at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
@ -223,7 +223,7 @@ endfunction " }}}2
function! s:SaveClasspath() " {{{2 function! s:SaveClasspath() " {{{2
" build classpath from lines " build classpath from lines
let path = '' let path = ''
let lines = getline(1, line('$')) let lines = getline(1, '$')
for l in lines for l in lines
let path = s:AddToClasspath(path, l) let path = s:AddToClasspath(path, l)
endfor endfor
@ -281,7 +281,7 @@ endfunction " }}}2
function! s:SaveConfig() " {{{2 function! s:SaveConfig() " {{{2
" get lines " get lines
let lines = getline(1, line('$')) let lines = getline(1, '$')
if g:syntastic_java_javac_config_file_enabled if g:syntastic_java_javac_config_file_enabled
" save config file lines " save config file lines
call writefile(lines, expand(g:syntastic_java_javac_config_file, 1)) call writefile(lines, expand(g:syntastic_java_javac_config_file, 1))

View File

@ -42,11 +42,12 @@ function! SyntaxCheckers_javascript_closurecompiler_GetLocList() dict
call syntastic#log#deprecationWarn('javascript_closure_compiler_options', 'javascript_closurecompiler_args') call syntastic#log#deprecationWarn('javascript_closure_compiler_options', 'javascript_closurecompiler_args')
call syntastic#log#deprecationWarn('javascript_closure_compiler_file_list', 'javascript_closurecompiler_file_list') call syntastic#log#deprecationWarn('javascript_closure_compiler_file_list', 'javascript_closurecompiler_file_list')
let flist = expand(get(g:, 'syntastic_javascript_closurecompiler_file_list', ''), 1) let buf = bufnr('')
let flist = expand(syntastic#util#bufVar(buf, 'javascript_closurecompiler_file_list'), 1)
if filereadable(flist) if filereadable(flist)
let file_list = map( readfile(flist), 'expand(v:var, 1)' ) let file_list = map( readfile(flist), 'expand(v:var, 1)' )
else else
let file_list = [expand('%', 1)] let file_list = [bufname(buf)]
endif endif
let makeprg = self.makeprgBuild({ let makeprg = self.makeprgBuild({

View File

@ -25,17 +25,18 @@ function! SyntaxCheckers_javascript_flow_IsAvailable() dict
if !executable(self.getExec()) if !executable(self.getExec())
return 0 return 0
endif endif
return syntastic#util#versionIsAtLeast(self.getVersion(self.getExecEscaped() . ' version'), [0, 18, 1]) return syntastic#util#versionIsAtLeast(self.getVersion(self.getExecEscaped() . ' version'), [0, 34])
endfunction endfunction
function! SyntaxCheckers_javascript_flow_GetLocList() dict function! SyntaxCheckers_javascript_flow_GetLocList() dict
if syntastic#util#findFileInParent('.flowconfig', expand('%:p:h', 1)) ==# '' let buf = bufnr('')
if syntastic#util#findFileInParent('.flowconfig', fnamemodify(bufname(buf), ':p:h')) ==# ''
return [] return []
endif endif
let makeprg = self.makeprgBuild({ let makeprg = self.makeprgBuild({
\ 'exe': self.getExecEscaped() . ' check', \ 'exe': self.getExecEscaped() . ' status',
\ 'args_after': '--show-all-errors --json' }) \ 'args_after': '--quiet --show-all-errors --json' })
let errorformat = let errorformat =
\ '%f:%l:%c:%n: %m,' . \ '%f:%l:%c:%n: %m,' .

View File

@ -0,0 +1,51 @@
"============================================================================
"File: lint.vim
"Description: Syntax checking plugin for syntastic
"Maintainer: LCD 47 <lcd047 at gmail dot com>
"License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute
" it and/or modify it under the terms of the Do What The Fuck You
" Want To Public License, Version 2, as published by Sam Hocevar.
" See http://sam.zoy.org/wtfpl/COPYING for more details.
"
"============================================================================
if exists('g:loaded_syntastic_julia_lint_checker')
finish
endif
let g:loaded_syntastic_julia_lint_checker = 1
let s:save_cpo = &cpo
set cpo&vim
function! SyntaxCheckers_julia_lint_GetHighlightRegex(item)
let term = matchstr(a:item['text'], '\m^\S\+\ze:')
return term !=# '' ? '\V' . escape(term, '\') : ''
endfunction
function! SyntaxCheckers_julia_lint_IsAvailable() dict
return
\ executable(self.getExec()) &&
\ syntastic#util#system(self.getExecEscaped() . ' -e ' . syntastic#util#shescape('import Lint')) ==# '' &&
\ v:shell_error == 0
endfunction
function! SyntaxCheckers_julia_lint_GetLocList() dict
let buf = bufnr('')
let makeprg = self.getExecEscaped() . ' -e ' . syntastic#util#shescape('using Lint; display(filter(err -> !isinfo(err), lintfile("' . escape(bufname(buf), '\"') . '")))')
let errorformat = '%f:%l %t%n %m'
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
endfunction
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'julia',
\ 'name': 'lint',
\ 'exec': 'julia' })
let &cpo = s:save_cpo
unlet s:save_cpo
" vim: set sw=4 sts=4 et fdm=marker:

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: less.vim "File: less.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: Julien Blanchard <julien at sideburns dot eu> "Maintainer: Julien Blanchard <julien at sideburns dot eu>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: recess.vim "File: recess.vim
"Description: Syntax checking plugin for syntastic.vim using `recess` "Description: Syntax checking plugin for syntastic using `recess`
" (http://twitter.github.io/recess/). " (http://twitter.github.io/recess/).
"Maintainer: Tim Carry <tim at pixelastic dot com> "Maintainer: Tim Carry <tim at pixelastic dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,

View File

@ -0,0 +1,23 @@
"============================================================================
"File: stylelint.vim
"Description: Syntax checking plugin for syntastic
"Maintainer: LCD 47 <lcd047 at gmail dot com>
"License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute
" it and/or modify it under the terms of the Do What The Fuck You
" Want To Public License, Version 2, as published by Sam Hocevar.
" See http://sam.zoy.org/wtfpl/COPYING for more details.
"
"============================================================================
if exists('g:loaded_syntastic_less_stylelint_checker')
finish
endif
let g:loaded_syntastic_less_stylelint_checker = 1
call g:SyntasticRegistry.CreateAndRegisterChecker({
\ 'filetype': 'less',
\ 'name': 'stylelint',
\ 'redirect': 'css/stylelint'})
" vim: set sw=4 sts=4 et fdm=marker:

View File

@ -1,6 +1,6 @@
"============================================================================ "============================================================================
"File: lex.vim "File: lex.vim
"Description: Syntax checking plugin for syntastic.vim "Description: Syntax checking plugin for syntastic
"Maintainer: LCD 47 <lcd047 at gmail dot com> "Maintainer: LCD 47 <lcd047 at gmail dot com>
"License: This program is free software. It comes without any warranty, "License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute " to the extent permitted by applicable law. You can redistribute

Some files were not shown because too many files have changed in this diff Show More