| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Vim filetype plugin file | 
					
						
							|  |  |  | " Language:     Abaqus finite element input file (www.abaqus.com) | 
					
						
							|  |  |  | " Maintainer:   Carl Osterwisch <osterwischc@asme.org> | 
					
						
							| 
									
										
										
										
											2012-04-30 15:56:52 +02:00
										 |  |  | " Last Change:  2012 Apr 30 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " 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,'.\\{-}=','','') | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-07-10 09:47:34 +00:00
										 |  |  | " Remove comma from valid filename characters since it is used to | 
					
						
							|  |  |  | " separate keyword parameters | 
					
						
							|  |  |  | setlocal isfname-=, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " 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+=- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | 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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " 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" | 
					
						
							| 
									
										
										
										
											2012-04-30 15:56:52 +02:00
										 |  |  |     let b:undo_ftplugin .= "|unlet! b:browsefilter" | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | " 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' | 
					
						
							| 
									
										
										
										
											2012-04-30 15:56:52 +02:00
										 |  |  |     let b:undo_ftplugin .= "|unlet! b:match_ignorecase b:match_words" | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | 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> | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " Define key to toggle commenting of the current line or range | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | noremap <silent><buffer> <LocalLeader><LocalLeader>  | 
					
						
							|  |  |  |     \ :call <SID>Abaqus_ToggleComment()<CR>j | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | let b:undo_ftplugin .= "|unmap <buffer> [[|unmap <buffer> ]]" | 
					
						
							|  |  |  |     \ . "|unmap <buffer> <LocalLeader><LocalLeader>" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-30 15:56:52 +02:00
										 |  |  | " 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" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Restore saved compatibility options | 
					
						
							|  |  |  | let &cpoptions = s:cpo_save | 
					
						
							| 
									
										
										
										
											2012-03-11 15:57:40 +01:00
										 |  |  | unlet s:cpo_save |