File salt-vim-20170630.obscpio of Package vim-plugins
07070100000000000081A40000000000000000000000015956F05E0000022A000000000000000000000000000000000000001A00000000salt-vim-20170630/LICENSECopyright (c) 2014 SaltStack
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.
07070100000001000081A40000000000000000000000015956F05E00000FFD000000000000000000000000000000000000001D00000000salt-vim-20170630/README.rst===================================
Vim files for working on Salt files
===================================
Installation
============
Using the Pathogen Plugin Manager
---------------------------------
The recommended method is to use
`Pathogen <https://github.com/tpope/vim-pathogen>`_.
Install Pathogen as described
`here <https://github.com/tpope/vim-pathogen#installation>`_,
then do:
::
cd ~/.vim/bundle && \
git clone https://github.com/saltstack/salt-vim.git
Using the Vundle Plugin Manager
-------------------------------
See
`Vundle <https://github.com/gmarik/vundle>`_.
Manual Method #1:
-----------------
::
git clone https://github.com/saltstack/salt-vim.git
cd salt-vim && \
cp -r ftdetect ftplugin syntax ~/.vim/
Manual Method #2:
-----------------
Alternately, files can be copied into any other directory where Vim looks for
its runtime files, like ``/etc/vim/``. The command ``:set runtimepath`` will
show all such paths. Read ``:help runtimepath`` for more info.
For all installation methods:
-----------------------------
You will also need to specify the following settings in your ``~/.vimrc``:
.. code-block:: vim
syntax on
set nocompatible
filetype plugin indent on
Note: It's possible you may be presented with an error stating something
similar to:
"E319: Sorry, the command is not available in this version: filetype plugin
indent on"
If you get this, specify the following settings in your ``~/.vimrc`` instead:
.. code-block:: vim
syntax on
set nocompatible
set tabstop=2
set shiftwidth=2
set expandtab
Too slow?
=========
Note that the default yaml highlighting that ships with vim is very slow with
long lines (e.g., ssh keys, or certificates). You might want to switch to a
faster yaml highlighter, like `vim-yaml <https://github.com/stephpy/vim-yaml>`_.
Configuration
=============
By default, the syntax file will search for the existence of a Jinja syntax
file (as described in the `Jinja docs`_ or via a `Vim bundle`_) in the
``runtimepath``, and load that if found. If it is not found, the Django
template syntax file (which is slightly different, but bundled with Vim) will
be used. You can force using either syntax file using the global variable
``g:sls_use_jinja_syntax``. If it is set, autodetection will be turned off.
.. _Jinja docs: http://jinja.pocoo.org/docs/integration/#vim
.. _Vim bundle: https://github.com/Glench/Vim-Jinja2-Syntax
Valid values:
``0``
Use the Django syntax file.
``1``
Use the Jinja syntax file, regardless of whether it exists or not.
Example section of ``~/.vimrc``:
.. code-block:: vim
" Force using the Django template syntax file
let g:sls_use_jinja_syntax = 0
Files
=====
``syntax/sls.vim``
Syntax file for editing YAML + Jinja SLS files.
``ftplugin/sls.vim``
Filetype plugin with good default config for SLS files. Configures suitable
wrapping, folding and indenting. Added features:
- All tabs are converted to spaces.
- Tab key indents by 2 spaces.
- Comments are hardwrapped (with added leading ``#``).
This is done by setting ``formatoptions``.
- <Space> key will try to fold/unfold an area.
- Visually selected block might be indented and unindented
by keys ``<`` and ``>``, keeping the visual selection selected.
- Improved indenting of YAML expressions with custom indenting function.
- Visual warning for non-ASCII characters (which are not allowed in YAML).
``ftdetect/sls.vim``
Detect SLS files by the file extension ``.sls``, and ``Saltfile`` files by
an exact filename match.
Other VIM plugins you might find interesting
============================================
- `Powerline <https://github.com/Lokaltog/vim-powerline>`_
- `NERDTree <https://github.com/scrooloose/nerdtree>`_
- `Gundo <https://github.com/sjl/gundo.vim/>`_
- `TabMan <https://github.com/kien/tabman.vim>`_
- `PythonMode <https://github.com/klen/python-mode>`_
- `FuzzyFinder <https://github.com/vim-scripts/FuzzyFinder>`_
- `CtrlP <http://kien.github.com/ctrlp.vim/>`_
07070100000002000041ED0000000000000000000000025956F05E00000000000000000000000000000000000000000000001B00000000salt-vim-20170630/ftdetect07070100000003000081A40000000000000000000000015956F05E000000D6000000000000000000000000000000000000002300000000salt-vim-20170630/ftdetect/sls.vimfunction! DetectSls()
if !did_filetype()
if match(getline(1), '^#!py') > -1
set ft=python
else
set ft=sls
endif
endif
endfunction
:au BufNewFile,BufRead *.sls,Saltfile call DetectSls()
07070100000004000041ED0000000000000000000000025956F05E00000000000000000000000000000000000000000000001B00000000salt-vim-20170630/ftplugin07070100000005000081A40000000000000000000000015956F05E000005FC000000000000000000000000000000000000002300000000salt-vim-20170630/ftplugin/sls.vim" Slow yaml highlighting workaround
if exists('+regexpengine') && ('®expengine' == 0)
setlocal regexpengine=1
endif
" Use two-spaces for indentation
setlocal expandtab
setlocal softtabstop=2
setlocal shiftwidth=2
setlocal commentstring=#%s
setlocal formatoptions=crl
" r -> don't add comment leader after an Enter
" c -> wrap long comments, including #
" l -> do not wrap long lines
" indentation
setlocal autoindent
" This function is from https://gist.github.com/871107
" Author: Ian Young
"
function! GetYamlIndent()
let cnum = v:lnum
let lnum = v:lnum - 1
if lnum == 0
return 0
endif
let line = substitute(getline(lnum),'\s\+$','','')
let cline = substitute(getline(cnum),'\s\+$','','')
let indent = indent(lnum)
let increase = indent + &sw
let decrease = indent - &sw
if line =~ ':$'
return increase
elseif line !~ ':$' && cline =~ ':$'
return decrease
elseif line =~ ':$'
else
return indent
endif
endfunction
setlocal indentexpr=GetYamlIndent()
" folding
setlocal foldmethod=indent
setlocal foldlevel=20 " by default do not fold
" Visual warning about UTF8 characters in SLS file.
" salt does not like them much, so they should be red
augroup utfsls
autocmd!
highlight UTFsls ctermbg=red guibg=red
match UTFsls /[\x7F-\xFF]/
autocmd BufWinEnter <buffer> match UTFsls /[\x7F-\xFF]/
autocmd InsertEnter <buffer> match UTFsls /[\x7F-\xFF]/
autocmd InsertLeave <buffer> match UTFsls /[\x7F-\xFF]/
autocmd BufWinLeave <buffer> call clearmatches()
augroup END
07070100000006000081A40000000000000000000000015956F05E00000437000000000000000000000000000000000000002000000000salt-vim-20170630/salt-vim.specName: salt-vim
Version: 0.0.1
Release: 1%{?dist}
Summary: Vim files for working on Salt files
Group: Applications/Editors
License: ASL 2.0
URL: https://github.com/saltstack/salt-vim
Source0: https://github.com/saltstack/salt-vim/archive/master.tar.gz
Requires: vim >= 7
%description
Vim files for working on Salt files
%prep
%setup -q -n salt-vim-master
%build
%install
mkdir -p %{buildroot}%{_defaultlicensedir}/%{name}-%{version}
mkdir -p %{buildroot}%{_datarootdir}/vim/vimfiles/{syntax,ftdetect,ftplugin}
cp syntax/sls.vim %{buildroot}%{_datarootdir}/vim/vimfiles/syntax/
cp ftdetect/sls.vim %{buildroot}%{_datarootdir}/vim/vimfiles/ftdetect/
cp ftplugin/sls.vim %{buildroot}%{_datarootdir}/vim/vimfiles/ftplugin/
cp LICENSE %{buildroot}%{_defaultlicensedir}/%{name}-%{version}
%files
%{_datarootdir}/vim/vimfiles/syntax/sls.vim
%{_datarootdir}/vim/vimfiles/ftdetect/sls.vim
%{_datarootdir}/vim/vimfiles/ftplugin/sls.vim
%{_defaultlicensedir}/%{name}-%{version}/LICENSE
%doc
%changelog
* Mon Dec 19 2016 Kai Meyer <kai@gnukai.com> - 0.0.1-1
- Initial RPM spec
07070100000007000041ED0000000000000000000000025956F05E00000000000000000000000000000000000000000000001900000000salt-vim-20170630/syntax07070100000008000081A40000000000000000000000015956F05E00000AFD000000000000000000000000000000000000002100000000salt-vim-20170630/syntax/sls.vim" Vim syntax file
" Language: Salt States template
" Maintainer: Seth House <seth@eseth.com>
" Last Change: 2012 June 20
"
if exists("b:current_syntax")
finish
endif
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
let b:current_syntax = ''
unlet b:current_syntax
" Default to look for Jinja syntax file
let s:load_jinja_syntax = 0
let s:search_for_jinja_syntax = 1
if exists("g:sls_use_jinja_syntax")
let s:search_for_jinja_syntax = 0
let s:load_jinja_syntax = g:sls_use_jinja_syntax
endif
if s:search_for_jinja_syntax
let s:jinja_path = findfile("syntax/jinja.vim", &rtp, 1)
if s:jinja_path != ""
let s:load_jinja_syntax = 1
endif
endif
if s:load_jinja_syntax
syntax include @Jinja syntax/jinja.vim
syn cluster jinjaSLSBlocks add=jinjaTagBlock,jinjaVarBlock,jinjaComment
" Mostly copy/pasted from
" https://github.com/mitsuhiko/jinja2/blob/6b7c0c23/ext/Vim/jinja.vim
syn region jinjaTagBlock matchgroup=jinjaTagDelim start=/{%-\?/ end=/-\?%}/ containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaRaw,jinjaString,jinjaNested,jinjaComment,@jinjaSLSBlocks
syn region jinjaVarBlock matchgroup=jinjaVarDelim start=/{{-\?/ end=/-\?}}/ containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaRaw,jinjaString,jinjaNested,jinjaComment,@jinjaSLSBlocks
syn region jinjaComment matchgroup=jinjaCommentDelim start="{#" end="#}" containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaString,@jinjaSLSBlocks
else
" Fall back to Django template syntax
syntax include @Jinja syntax/django.vim
syn cluster djangoBlocks add=djangoTagBlock,djangoVarBlock,djangoComment,djangoComBlock
syn region djangoTagBlock start="{%" end="%}" contains=djangoStatement,djangoFilter,djangoArgument,djangoTagError display containedin=ALLBUT,@djangoBlocks
syn region djangoVarBlock start="{{" end="}}" contains=djangoFilter,djangoArgument,djangoVarError display containedin=ALLBUT,@djangoBlocks
syn region djangoComBlock start="{#" end="#}" contains=djangoTodo containedin=ALLBUT,@djangoBlocks
endif
syn keyword salt_stateInclude include extend containedin=yamlBlockMappingKey
highlight link salt_stateInclude Include
syn keyword salt_stateSpecialArgs name names check_cmd listen listen_in onchanges onchanges_in onfail onfail_in onlyif prereq prereq_in require require_in unless use use_in watch watch_in containedin=yamlBlockMappingKey
highlight link salt_stateSpecialArgs Special
syn keyword salt_stateErrors requires requires_in watches watches_in includes extends containedin=yamlBlockMappingKey
highlight link salt_stateErrors Error
let g:NERDCustomDelimiters = {
\ 'sls': { 'left': '#' },
\ }
let b:current_syntax = "sls"
07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000B00000000TRAILER!!!23 blocks