Add Peter Provost's PowerShell plugin for Vim
See headers of any of the committed files.
This commit is contained in:
parent
fccef0454c
commit
965016f0de
3 changed files with 149 additions and 0 deletions
27
vim/ftdetect/ps1.vim
Normal file
27
vim/ftdetect/ps1.vim
Normal file
|
@ -0,0 +1,27 @@
|
|||
" Vim filetype plugin file
|
||||
" Language: Windows PowerShell
|
||||
" Maintainer: Peter Provost <peter@provost.org>
|
||||
" Version: 1.0
|
||||
"
|
||||
" $LastChangedDate $
|
||||
" $Rev $
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
|
||||
" Don't load another plug-in for this buffer
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal tw=0
|
||||
setlocal commentstring=#%s
|
||||
setlocal formatoptions=tcqro
|
||||
|
||||
" Change the browse dialog on Win32 to show mainly PowerShell-related files
|
||||
if has("gui_win32")
|
||||
let b:browsefilter = "PowerShell Files (*.ps1)\t*.ps1\n" .
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
endif
|
||||
|
||||
" Undo the stuff we changed
|
||||
let b:undo_ftplugin = "setlocal tw< cms< fo<" .
|
||||
\ " | unlet! b:browsefilter"
|
18
vim/indent/ps1.vim
Normal file
18
vim/indent/ps1.vim
Normal file
|
@ -0,0 +1,18 @@
|
|||
" Vim indent file
|
||||
" Language: Windows PowerShell
|
||||
" Maintainer: Peter Provost <peter@provost.org>
|
||||
" Version: 1.0
|
||||
"
|
||||
" $LastChangedDate $
|
||||
" $Rev $
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
" PS indenting is like indenting C
|
||||
setlocal cindent cinoptions& cinoptions+=+0
|
||||
|
||||
let b:undo_indent = "setl cin<"
|
104
vim/syntax/ps1.vim
Normal file
104
vim/syntax/ps1.vim
Normal file
|
@ -0,0 +1,104 @@
|
|||
" Vim syntax file
|
||||
" Language: Windows PowerShell
|
||||
" Maintainer: Peter Provost <peter@provost.org>
|
||||
" Version: 2.7
|
||||
" Url: http://www.vim.org/scripts/script.php?script_id=1327
|
||||
"
|
||||
" $LastChangedDate: 2007-03-05 21:18:39 -0800 (Mon, 05 Mar 2007) $
|
||||
" $Rev: 58 $
|
||||
"
|
||||
" Contributions by:
|
||||
" Jared Parsons <jaredp@beanseed.org>
|
||||
" Heath Stewart <heaths@microsoft.com>
|
||||
|
||||
" Compatible VIM syntax file start
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" PowerShell doesn't care about case
|
||||
syn case ignore
|
||||
|
||||
" Sync-ing method
|
||||
syn sync minlines=100
|
||||
|
||||
" Comments and special comment words
|
||||
syn keyword ps1CommentTodo TODO FIXME XXX TBD HACK contained
|
||||
syn match ps1Comment /#.*/ contains=ps1CommentTodo
|
||||
|
||||
" Language keywords and elements
|
||||
syn keyword ps1Conditional if else elseif switch
|
||||
syn keyword ps1Repeat while default for do until break continue
|
||||
syn match ps1Repeat /\<foreach\>/ nextgroup=ps1Cmdlet
|
||||
syn keyword ps1Keyword return filter in trap throw param begin process end
|
||||
syn match ps1Keyword /\<while\>/ nextgroup=ps1Cmdlet
|
||||
|
||||
" Functions and Cmdlets
|
||||
syn match ps1Cmdlet /\w\+-\w\+/
|
||||
syn keyword ps1Keyword function nextgroup=ps1Function skipwhite
|
||||
syn match ps1Function /\w\+-*\w*/ contained
|
||||
|
||||
" Type declarations
|
||||
syn match ps1Type /\[[a-z0-9_:.]\+\(\[\]\)\?\]/
|
||||
syn match ps1StandaloneType /[a-z0-9_.]\+/ contained
|
||||
syn keyword ps1Scope global local private script contained
|
||||
|
||||
" Variables and other user defined items
|
||||
syn match ps1Variable /\$\w\+/
|
||||
syn match ps1Variable /\${\w\+:\\\w\+}/
|
||||
syn match ps1ScopedVariable /\$\w\+:\w\+/ contains=ps1Scope
|
||||
syn match ps1VariableName /\w\+/ contained
|
||||
|
||||
" Operators all start w/ dash
|
||||
syn match ps1OperatorStart /-c\?/ nextgroup=ps1Operator
|
||||
syn keyword ps1Operator eq ne ge gt lt le like notlike match notmatch replace /contains/ notcontains contained
|
||||
syn keyword ps1Operator ieq ine ige igt ile ilt ilike inotlike imatch inotmatch ireplace icontains inotcontains contained
|
||||
syn keyword ps1Operator ceq cne cge cgt clt cle clike cnotlike cmatch cnotmatch creplace ccontains cnotcontains contained
|
||||
syn keyword ps1Operator is isnot as
|
||||
syn keyword ps1Operator and or band bor not
|
||||
syn keyword ps1Operator f
|
||||
|
||||
" Regular Strings
|
||||
syn region ps1String start=/"/ skip=/`"/ end=/"/
|
||||
syn region ps1String start=/'/ end=/'/
|
||||
|
||||
" Here-Strings
|
||||
syn region ps1String start=/@"$/ end=/^"@$/
|
||||
syn region ps1String start=/@'$/ end=/^'@$/
|
||||
|
||||
" Numbers
|
||||
syn match ps1Number /\<[0-9]\+/
|
||||
|
||||
" Setup default color highlighting
|
||||
if version >= 508 || !exists("did_ps1_syn_inits")
|
||||
if version < 508
|
||||
let did_ps1_syn_inits = 1
|
||||
command -nargs=+ HiLink hi link <args>
|
||||
else
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
|
||||
HiLink ps1String String
|
||||
HiLink ps1Conditional Conditional
|
||||
HiLink ps1Function Function
|
||||
HiLink ps1Variable Identifier
|
||||
HiLink ps1ScopedVariable Identifier
|
||||
HiLink ps1VariableName Identifier
|
||||
HiLink ps1Type Type
|
||||
HiLink ps1Scope Type
|
||||
HiLink ps1StandaloneType Type
|
||||
HiLink ps1Number Number
|
||||
HiLink ps1Comment Comment
|
||||
HiLink ps1CommentTodo Todo
|
||||
HiLink ps1Operator Operator
|
||||
HiLink ps1Repeat Repeat
|
||||
HiLink ps1RepeatAndCmdlet Repeat
|
||||
HiLink ps1Keyword Keyword
|
||||
HiLink ps1KeywordAndCmdlet Keyword
|
||||
HiLink ps1Cmdlet Statement
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
let b:current_syntax = "powershell"
|
Loading…
Add table
Add a link
Reference in a new issue