summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2017-02-02 21:54:55 +0100
committerAdam Stankiewicz <sheerun@sher.pl>2017-02-02 21:54:55 +0100
commit7404993f0c385b4a7d979a99461d067ec06fd940 (patch)
treeffd5f464ae3a82996b37b573e22617ad8287ab46
parentb7e2b0cad32cb2e806efd5c03984f098a1ad8c55 (diff)
downloadvim-polyglot-7404993f0c385b4a7d979a99461d067ec06fd940.tar.gz
vim-polyglot-7404993f0c385b4a7d979a99461d067ec06fd940.zip
Add i3 config support, closes #168
-rw-r--r--README.md1
-rwxr-xr-xbuild1
-rw-r--r--ftdetect/polyglot.vim10
-rw-r--r--ftplugin/i3.vim5
-rw-r--r--syntax/i3.vim134
5 files changed, 151 insertions, 0 deletions
diff --git a/README.md b/README.md
index 5ecfbb57..ed86c746 100644
--- a/README.md
+++ b/README.md
@@ -60,6 +60,7 @@ If you need full functionality of any plugin, please use it directly with your p
- [haskell](https://github.com/neovimhaskell/haskell-vim) (syntax, indent, ftplugin, ftdetect)
- [haxe](https://github.com/yaymukund/vim-haxe) (syntax, ftdetect)
- [html5](https://github.com/othree/html5.vim) (syntax, indent, autoload, ftplugin)
+- [i3](https://github.com/PotatoesMaster/i3-vim-syntax) (syntax, ftplugin, ftdetect)
- [jasmine](https://github.com/glanotte/vim-jasmine) (syntax, ftdetect)
- [javascript](https://github.com/pangloss/vim-javascript) (syntax, indent, compiler, ftdetect, ftplugin, extras)
- [json](https://github.com/elzr/vim-json) (syntax, indent, ftplugin, ftdetect)
diff --git a/build b/build
index a5504efb..da7962d4 100755
--- a/build
+++ b/build
@@ -133,6 +133,7 @@ PACKS="
haskell:neovimhaskell/haskell-vim
haxe:yaymukund/vim-haxe
html5:othree/html5.vim
+ i3:PotatoesMaster/i3-vim-syntax
jasmine:glanotte/vim-jasmine
javascript:pangloss/vim-javascript:_JAVASCRIPT
json:elzr/vim-json
diff --git a/ftdetect/polyglot.vim b/ftdetect/polyglot.vim
index ea6e0fbc..428c14db 100644
--- a/ftdetect/polyglot.vim
+++ b/ftdetect/polyglot.vim
@@ -346,6 +346,16 @@ autocmd BufNewFile,BufRead *.hx setf haxe
endif
+" ftdetect/i3.vim
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'i3') == -1
+
+augroup i3_ftdetect
+ au!
+ au BufRead,BufNewFile *i3/config set ft=i3
+augroup END
+
+endif
+
" ftdetect/jasmine.vim
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'jasmine') == -1
diff --git a/ftplugin/i3.vim b/ftplugin/i3.vim
new file mode 100644
index 00000000..6470f448
--- /dev/null
+++ b/ftplugin/i3.vim
@@ -0,0 +1,5 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'i3') == -1
+
+setlocal commentstring=#\ %s
+
+endif
diff --git a/syntax/i3.vim b/syntax/i3.vim
new file mode 100644
index 00000000..437313b2
--- /dev/null
+++ b/syntax/i3.vim
@@ -0,0 +1,134 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'i3') == -1
+
+" Vim syntax file
+" Language: i3-wm config file
+" Maintainer: Emanuel Guével
+" Latest Revision: 16 October 2012
+
+if exists("b:current_syntax")
+ finish
+endif
+
+" Symbols
+syn match i3Operators "+\|→"
+syn match i3ChainDelimiter ";"
+
+syn match i3Var "\$\w\+"
+
+" Key modifiers
+syn keyword i3KeyModifier Shift Control Ctrl Mod1 Mod2 Mod3 Mod4 Mod5 Mode_switch
+
+" Strings
+syn region i3SimpleString keepend start='[^ \t]' end='$\|;' contained contains=i3ChainDelimiter,i3Var
+syn match i3QuotedString '"[^"]\+"' contained
+syn cluster i3String contains=i3SimpleString,i3QuotedString
+
+" Config commands
+syn keyword i3ConfigCommand bind bindcode bindsym assign new_window popup_during_fullscreen font floating_modifier default_orientation workspace_layout for_window focus_follows_mouse bar position colors output tray_output workspace_buttons workspace_auto_back_and_forth binding_mode_indicator debuglog floating_minimum_size floating_maximum_size force_focus_wrapping force_xinerama force_display_urgency_hint hidden_state modifier new_float shmlog socket_path verbose mouse_warping strip_workspace_numbers focus_on_window_activation no_focus
+syn match i3IpcSocket "ipc[-_]socket" nextgroup=@i3String skipwhite
+
+" Command keywords
+syn keyword i3Command exit reload restart kill fullscreen global layout border focus move open split append_layout mark unmark resize grow shrink show nop rename title_format sticky
+syn keyword i3Param 1pixel default stacked tabbed normal none tiling stacking floating enable disable up down horizontal vertical auto up down left right parent child px or ppt leave_fullscreen toggle mode_toggle scratchpad width height top bottom client hide primary yes all active window container to absolute center on off x ms h v smart ignore pixel splith splitv output true
+syn match i3DashedParam '--\(release\|border\|whole-window\|toggle\)' skipwhite
+syn match i3NoStartupId '--no-startup-id' contained
+syn keyword i3WsSpecialParam next prev next_on_output prev_on_output back_and_forth current number
+syn keyword i3BordersSpecialParam none vertical horizontal both
+syn keyword i3ModeParam dock hide invisible skipwhite
+
+" these are not keywords but we add them for consistency
+syn keyword i3PseudoParam no false inactive
+
+" Exec commands
+syn region i3ExecCommand keepend start='[^ \t]' end='$\|;' contained contains=i3ChainDelimiter,i3Var,i3NoStartupId
+syn match i3QuotedExecCommand '"[^"]\+"' contained
+syn keyword i3ExecKeyword exec exec_always i3bar_command nextgroup=i3QuotedExecCommand,i3ExecCommand skipwhite
+
+" Status command
+syn match i3StatusCommand ".*$" contained
+syn keyword i3StatusCommandKeyword status_command nextgroup=i3StatusCommand skipwhite
+
+" Font statement
+syn keyword i3FontStatement font nextgroup=@i3String skipwhite
+
+" Separator symbol
+syn keyword i3SeparatorSymbol separator_symbol nextgroup=@i3String skipwhite
+
+" Set statement
+syn match i3SetVar "\$\w\+" contained nextgroup=@i3String skipwhite
+syn keyword i3SetKeyword set nextgroup=i3SetVar skipwhite
+
+" Workspaces
+syn keyword i3WsKeyword workspace nextgroup=i3WsSpecialParam,@i3String skipwhite
+
+" Hide edge borders
+syn keyword i3BordersConfigCommand hide_edge_borders nextgroup=i3BordersSpecialParam skipwhite
+
+" Mode
+syn keyword i3ModeKeyword mode nextgroup=i3ModeParam,@i3String skipwhite
+
+" Comments
+syn keyword i3Todo contained TODO FIXME XXX NOTE
+syn match i3Comment "^\s*#.*$" contains=i3Todo
+
+" Error (at end of line)
+syn match i3Error ".*$" contained
+
+" Hex color code
+syn match i3ColorLast "#[0-9a-fA-F]\{6\}" contained nextgroup=i3Error skipwhite
+syn match i3Color2nd "#[0-9a-fA-F]\{6\}" contained nextgroup=i3ColorLast skipwhite
+syn match i3Color1st "#[0-9a-fA-F]\{6\}" contained nextgroup=i3Color2nd skipwhite
+
+syn match i3ColorDef1 "client\.background\|statusline\|background\|separator\|statusline" nextgroup=i3ColorLast skipwhite
+syn match i3ColorDef3 "client\.\(focused_inactive\|focused\|unfocused\|urgent\)\|inactive_workspace\|urgent_workspace\|focused_workspace\|active_workspace" nextgroup=i3Color1st skipwhite
+
+highlight link i3ChainDelimiter Operator
+highlight link i3Operators Operator
+
+highlight link i3ExecCommand Special
+highlight link i3QuotedExecCommand Special
+highlight link i3StatusCommand Special
+
+highlight link i3Param Constant
+highlight link i3PseudoParam Constant
+highlight link i3DashedParam Constant
+highlight link i3NoStartupId Constant
+highlight link i3Color1st Constant
+highlight link i3Color2nd Constant
+highlight link i3ColorLast Constant
+highlight link i3WsSpecialParam Constant
+highlight link i3BordersSpecialParam Constant
+highlight link i3ModeParam Constant
+
+highlight link i3Var Identifier
+highlight link i3SetVar Identifier
+
+highlight link i3KeyModifier Function
+
+highlight link i3SimpleString String
+highlight link i3QuotedString String
+highlight link i3WsName String
+highlight link i3QuotedWsName String
+highlight link i3SetValue String
+highlight link i3Font String
+
+highlight link i3ExecKeyword Keyword
+highlight link i3Command Keyword
+highlight link i3WsKeyword Keyword
+
+highlight link i3ColorDef1 Define
+highlight link i3ColorDef3 Define
+highlight link i3ConfigCommand Define
+highlight link i3IpcSocket Define
+highlight link i3SetKeyword Define
+highlight link i3ModeKeyword Define
+highlight link i3FontStatement Define
+highlight link i3SeparatorSymbol Define
+highlight link i3StatusCommandKeyword Define
+highlight link i3BordersConfigCommand Define
+
+highlight link i3Todo Todo
+highlight link i3Comment Comment
+highlight link i3Error Error
+
+endif