aboutsummaryrefslogtreecommitdiff
path: root/runtime/ftplugin/abaqus.vim
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2014-07-11 04:05:51 +0000
committerJustin M. Keyes <justinkz@gmail.com>2014-07-29 02:12:31 +0000
commita98a6996c291b3e300d27b791eded9eed333d677 (patch)
tree51d92f6cac128f938cd0aaa9a8dd0ce7a83d63a9 /runtime/ftplugin/abaqus.vim
parent66bc13163398786c88e20b7cdd61c66978b4d3fb (diff)
downloadrneovim-a98a6996c291b3e300d27b791eded9eed333d677.tar.gz
rneovim-a98a6996c291b3e300d27b791eded9eed333d677.tar.bz2
rneovim-a98a6996c291b3e300d27b791eded9eed333d677.zip
re-integrate runtime/ vim-patch:0 #938
Vim runtime files based on 7.4.384 / hg changeset 7090d7f160f7 Excluding: Amiga icons (*.info, icons/) doc/hangulin.txt tutor/ spell/ lang/ (only used for menu translations) macros/maze/, macros/hanoi/, macros/life/, macros/urm/ These were used to test vi compatibility. termcap "Demonstration of a termcap file (for the Amiga and Archimedes)" Helped-by: Rich Wareham <rjw57@cam.ac.uk> Helped-by: John <john.schmidt.h@gmail.com> Helped-by: Yann <yann@yann-salaun.com> Helped-by: Christophe Badoit <c.badoit@lesiteimmo.com> Helped-by: drasill <github@tof2k.com> Helped-by: Tae Sandoval Murgan <taecilla@gmail.com> Helped-by: Lowe Thiderman <lowe.thiderman@gmail.com>
Diffstat (limited to 'runtime/ftplugin/abaqus.vim')
-rw-r--r--runtime/ftplugin/abaqus.vim97
1 files changed, 97 insertions, 0 deletions
diff --git a/runtime/ftplugin/abaqus.vim b/runtime/ftplugin/abaqus.vim
new file mode 100644
index 0000000000..b263d0c318
--- /dev/null
+++ b/runtime/ftplugin/abaqus.vim
@@ -0,0 +1,97 @@
+" Vim filetype plugin file
+" Language: Abaqus finite element input file (www.abaqus.com)
+" Maintainer: Carl Osterwisch <osterwischc@asme.org>
+" Last Change: 2012 Apr 30
+
+" Only do this when not done yet for this buffer
+if exists("b:did_ftplugin") | finish | endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+" Save the compatibility options and temporarily switch to vim defaults
+let s:cpo_save = &cpoptions
+set cpoptions&vim
+
+" Set the format of the include file specification for Abaqus
+" Used in :check gf ^wf [i and other commands
+setlocal include=\\<\\cINPUT\\s*=
+
+" Remove characters up to the first = when evaluating filenames
+setlocal includeexpr=substitute(v:fname,'.\\{-}=','','')
+
+" Remove comma from valid filename characters since it is used to
+" separate keyword parameters
+setlocal isfname-=,
+
+" Define format of comment lines (see 'formatoptions' for uses)
+setlocal comments=:**
+setlocal commentstring=**%s
+
+" Definitions start with a * and assign a NAME, NSET, or ELSET
+" Used in [d ^wd and other commands
+setlocal define=^\\*\\a.*\\c\\(NAME\\\|NSET\\\|ELSET\\)\\s*=
+
+" Abaqus keywords and identifiers may include a - character
+setlocal iskeyword+=-
+
+let b:undo_ftplugin = "setlocal include< includeexpr< isfname<"
+ \ . " comments< commentstring< define< iskeyword<"
+
+if has("folding")
+ " Fold all lines that do not begin with *
+ setlocal foldexpr=getline(v:lnum)[0]!=\"\*\"
+ setlocal foldmethod=expr
+ let b:undo_ftplugin .= " foldexpr< foldmethod<"
+endif
+
+" Set the file browse filter (currently only supported under Win32 gui)
+if has("gui_win32") && !exists("b:browsefilter")
+ let b:browsefilter = "Abaqus Input Files (*.inp *.inc)\t*.inp;*.inc\n" .
+ \ "Abaqus Results (*.dat)\t*.dat\n" .
+ \ "Abaqus Messages (*.pre *.msg *.sta)\t*.pre;*.msg;*.sta\n" .
+ \ "All Files (*.*)\t*.*\n"
+ let b:undo_ftplugin .= "|unlet! b:browsefilter"
+endif
+
+" Define patterns for the matchit plugin
+if exists("loaded_matchit") && !exists("b:match_words")
+ let b:match_ignorecase = 1
+ let b:match_words =
+ \ '\*part:\*end\s*part,' .
+ \ '\*assembly:\*end\s*assembly,' .
+ \ '\*instance:\*end\s*instance,' .
+ \ '\*step:\*end\s*step'
+ let b:undo_ftplugin .= "|unlet! b:match_ignorecase b:match_words"
+endif
+
+" Define keys used to move [count] keywords backward or forward.
+noremap <silent><buffer> [[ ?^\*\a<CR>:nohlsearch<CR>
+noremap <silent><buffer> ]] /^\*\a<CR>:nohlsearch<CR>
+
+" Define key to toggle commenting of the current line or range
+noremap <silent><buffer> <LocalLeader><LocalLeader>
+ \ :call <SID>Abaqus_ToggleComment()<CR>j
+function! <SID>Abaqus_ToggleComment() range
+ if strpart(getline(a:firstline), 0, 2) == "**"
+ " Un-comment all lines in range
+ silent execute a:firstline . ',' . a:lastline . 's/^\*\*//'
+ else
+ " Comment all lines in range
+ silent execute a:firstline . ',' . a:lastline . 's/^/**/'
+ endif
+endfunction
+
+let b:undo_ftplugin .= "|unmap <buffer> [[|unmap <buffer> ]]"
+ \ . "|unmap <buffer> <LocalLeader><LocalLeader>"
+
+" Undo must be done in nocompatible mode for <LocalLeader>.
+let b:undo_ftplugin = "let s:cpo_save = &cpoptions|"
+ \ . "set cpoptions&vim|"
+ \ . b:undo_ftplugin
+ \ . "|let &cpoptions = s:cpo_save"
+ \ . "|unlet s:cpo_save"
+
+" Restore saved compatibility options
+let &cpoptions = s:cpo_save
+unlet s:cpo_save