summaryrefslogtreecommitdiffstats
path: root/syntax/ansible.vim
diff options
context:
space:
mode:
authorDan Reif <dan.reif@collectivehealth.com>2018-04-30 12:00:42 -0700
committerDan Reif <dan.reif@collectivehealth.com>2018-04-30 12:00:42 -0700
commit3e0c887365bc1ebd55b91dd69ab73f2dee1f00ed (patch)
treece76003a08274cb805df101a44be8d37af1a4c4b /syntax/ansible.vim
parentb4d7993e7ea554153025c5072749f415e69e0323 (diff)
downloadvim-polyglot-3e0c887365bc1ebd55b91dd69ab73f2dee1f00ed.tar.gz
vim-polyglot-3e0c887365bc1ebd55b91dd69ab73f2dee1f00ed.zip
Update (periodic rebuild)
I originally meant to run this before adding haproxy, but accidentally pushed that into my branch. If you'd like to see that content, it's at https://github.com/CH-DanReif/vim-polyglot/commit/414ad25c3ad1ab9c4b6a99fe4f08d6c30b7e0f57.
Diffstat (limited to 'syntax/ansible.vim')
-rw-r--r--syntax/ansible.vim98
1 files changed, 25 insertions, 73 deletions
diff --git a/syntax/ansible.vim b/syntax/ansible.vim
index c610c41d..0b732101 100644
--- a/syntax/ansible.vim
+++ b/syntax/ansible.vim
@@ -3,28 +3,23 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ansible') == -1
" Vim syntax file
" Language: Ansible YAML/Jinja templates
" Maintainer: Dave Honneffer <pearofducks@gmail.com>
-" Last Change: 2015.09.06
-
-if exists("b:current_syntax")
- finish
-endif
+" Last Change: 2018.02.08
if !exists("main_syntax")
let main_syntax = 'yaml'
endif
-let b:current_syntax = ''
-unlet b:current_syntax
-runtime! syntax/yaml.vim
-
-let b:current_syntax = ''
-unlet b:current_syntax
-syntax include @Yaml syntax/yaml.vim
+if exists('b:current_syntax')
+ let s:current_syntax=b:current_syntax
+ unlet b:current_syntax
+endif
-let b:current_syntax = ''
-unlet b:current_syntax
syntax include @Jinja syntax/jinja2.vim
+if exists('s:current_syntax')
+ let b:current_syntax=s:current_syntax
+endif
+
" Jinja
" ================================
@@ -39,6 +34,12 @@ highlight link jinjaVarDelim Delimiter
" YAML
" ================================
+if exists("g:ansible_yamlKeyName")
+ let s:yamlKey = g:ansible_yamlKeyName
+else
+ let s:yamlKey = "yamlBlockMappingKey"
+endif
+
" Reset some YAML to plain styling
" the number 80 in Ansible isn't any more important than the word root
highlight link yamlInteger NONE
@@ -46,58 +47,9 @@ highlight link yamlBool NONE
highlight link yamlFlowString NONE
" but it does make sense we visualize quotes easily
highlight link yamlFlowStringDelimiter Delimiter
-
-fun! s:normal_keywords_highlight(name)
- if a:name == 'Comment'
- highlight link ansible_normal_keywords Comment
- elseif a:name == 'Constant'
- highlight link ansible_normal_keywords Constant
- elseif a:name == 'Identifier'
- highlight link ansible_normal_keywords Identifier
- elseif a:name == 'Statement'
- highlight link ansible_normal_keywords Statement
- elseif a:name == 'PreProc'
- highlight link ansible_normal_keywords PreProc
- elseif a:name == 'Type'
- highlight link ansible_normal_keywords Type
- elseif a:name == 'Special'
- highlight link ansible_normal_keywords Special
- elseif a:name == 'Underlined'
- highlight link ansible_normal_keywords Underlined
- elseif a:name == 'Ignore'
- highlight link ansible_normal_keywords Ignore
- elseif a:name == 'Error'
- highlight link ansible_normal_keywords Error
- elseif a:name == 'Todo'
- highlight link ansible_normal_keywords Todo
- endif
-endfun
-
-fun! s:with_keywords_highlight(name)
- if a:name == 'Comment'
- highlight link ansible_with_keywords Comment
- elseif a:name == 'Constant'
- highlight link ansible_with_keywords Constant
- elseif a:name == 'Identifier'
- highlight link ansible_with_keywords Identifier
- elseif a:name == 'Statement'
- highlight link ansible_with_keywords Statement
- elseif a:name == 'PreProc'
- highlight link ansible_with_keywords PreProc
- elseif a:name == 'Type'
- highlight link ansible_with_keywords Type
- elseif a:name == 'Special'
- highlight link ansible_with_keywords Special
- elseif a:name == 'Underlined'
- highlight link ansible_with_keywords Underlined
- elseif a:name == 'Ignore'
- highlight link ansible_with_keywords Ignore
- elseif a:name == 'Error'
- highlight link ansible_with_keywords Error
- elseif a:name == 'Todo'
- highlight link ansible_with_keywords Todo
- endif
-endfun
+" This is only found in stephypy/vim-yaml, since it's one line it isn't worth
+" making conditional
+highlight link yamlConstant NONE
fun! s:attribute_highlight(attributes)
if a:attributes =~ 'a'
@@ -121,7 +73,7 @@ else
endif
if exists("g:ansible_name_highlight")
- syn keyword ansible_name name containedin=yamlBlockMappingKey contained
+ execute 'syn keyword ansible_name name containedin='.s:yamlKey.' contained'
if g:ansible_name_highlight =~ 'd'
highlight link ansible_name Comment
else
@@ -129,24 +81,24 @@ if exists("g:ansible_name_highlight")
endif
endif
-syn keyword ansible_debug_keywords debug containedin=yamlBlockMappingKey contained
+execute 'syn keyword ansible_debug_keywords debug containedin='.s:yamlKey.' contained'
highlight link ansible_debug_keywords Debug
if exists("g:ansible_extra_keywords_highlight")
- syn keyword ansible_extra_special_keywords register always_run changed_when failed_when no_log args vars delegate_to ignore_errors containedin=yamlBlockMappingKey contained
+ execute 'syn keyword ansible_extra_special_keywords register always_run changed_when failed_when no_log args vars delegate_to ignore_errors containedin='.s:yamlKey.' contained'
highlight link ansible_extra_special_keywords Statement
endif
-syn keyword ansible_normal_keywords include include_tasks import_tasks until retries delay when only_if become become_user block rescue always notify containedin=yamlBlockMappingKey contained
+execute 'syn keyword ansible_normal_keywords include include_tasks import_tasks until retries delay when only_if become become_user block rescue always notify containedin='.s:yamlKey.' contained'
if exists("g:ansible_normal_keywords_highlight")
- call s:normal_keywords_highlight(g:ansible_normal_keywords_highlight)
+ execute 'highlight link ansible_normal_keywords '.g:ansible_normal_keywords_highlight
else
highlight link ansible_normal_keywords Statement
endif
-syn match ansible_with_keywords "\vwith_.+" containedin=yamlBlockMappingKey contained
+execute 'syn match ansible_with_keywords "\vwith_.+" containedin='.s:yamlKey.' contained'
if exists("g:ansible_with_keywords_highlight")
- call s:with_keywords_highlight(g:ansible_with_keywords_highlight)
+ execute 'highlight link ansible_with_keywords '.g:ansible_with_keywords_highlight
else
highlight link ansible_with_keywords Statement
endif