mirror of
https://github.com/neovim/neovim.git
synced 2024-12-25 05:35:10 -07:00
148 lines
5.2 KiB
VimL
148 lines
5.2 KiB
VimL
|
"------------------------------------------------------------------------------
|
||
|
" Description: Vim Ada/GNAT compiler file
|
||
|
" Language: Ada (GNAT)
|
||
|
" $Id: gnat.vim 887 2008-07-08 14:29:01Z krischik $
|
||
|
" Copyright: Copyright (C) 2006 Martin Krischik
|
||
|
" Maintainer: Martin Krischi <krischik@users.sourceforge.net>k
|
||
|
" Ned Okie <nokie@radford.edu>
|
||
|
" $Author: krischik $
|
||
|
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
|
||
|
" Version: 4.6
|
||
|
" $Revision: 887 $
|
||
|
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/gnat.vim $
|
||
|
" History: 24.05.2006 MK Unified Headers
|
||
|
" 16.07.2006 MK Ada-Mode as vim-ball
|
||
|
" 05.08.2006 MK Add session support
|
||
|
" 15.10.2006 MK Bram's suggestion for runtime integration
|
||
|
" 05.11.2006 MK Bram suggested not to use include protection for
|
||
|
" autoload
|
||
|
" 05.11.2006 MK Bram suggested to save on spaces
|
||
|
" 19.09.2007 NO use project file only when there is a project
|
||
|
" Help Page: compiler-gnat
|
||
|
"------------------------------------------------------------------------------
|
||
|
|
||
|
if version < 700
|
||
|
finish
|
||
|
endif
|
||
|
|
||
|
function gnat#Make () dict " {{{1
|
||
|
let &l:makeprg = self.Get_Command('Make')
|
||
|
let &l:errorformat = self.Error_Format
|
||
|
wall
|
||
|
make
|
||
|
copen
|
||
|
set wrap
|
||
|
wincmd W
|
||
|
endfunction gnat#Make " }}}1
|
||
|
|
||
|
function gnat#Pretty () dict " {{{1
|
||
|
execute "!" . self.Get_Command('Pretty')
|
||
|
endfunction gnat#Make " }}}1
|
||
|
|
||
|
function gnat#Find () dict " {{{1
|
||
|
execute "!" . self.Get_Command('Find')
|
||
|
endfunction gnat#Find " }}}1
|
||
|
|
||
|
function gnat#Tags () dict " {{{1
|
||
|
execute "!" . self.Get_Command('Tags')
|
||
|
edit tags
|
||
|
call gnat#Insert_Tags_Header ()
|
||
|
update
|
||
|
quit
|
||
|
endfunction gnat#Tags " }}}1
|
||
|
|
||
|
function gnat#Set_Project_File (...) dict " {{{1
|
||
|
if a:0 > 0
|
||
|
let self.Project_File = a:1
|
||
|
|
||
|
if ! filereadable (self.Project_File)
|
||
|
let self.Project_File = findfile (
|
||
|
\ fnamemodify (self.Project_File, ':r'),
|
||
|
\ $ADA_PROJECT_PATH,
|
||
|
\ 1)
|
||
|
endif
|
||
|
elseif strlen (self.Project_File) > 0
|
||
|
let self.Project_File = browse (0, 'GNAT Project File?', '', self.Project_File)
|
||
|
elseif expand ("%:e") == 'gpr'
|
||
|
let self.Project_File = browse (0, 'GNAT Project File?', '', expand ("%:e"))
|
||
|
else
|
||
|
let self.Project_File = browse (0, 'GNAT Project File?', '', 'default.gpr')
|
||
|
endif
|
||
|
|
||
|
if strlen (v:this_session) > 0
|
||
|
execute 'mksession! ' . v:this_session
|
||
|
endif
|
||
|
|
||
|
"if strlen (self.Project_File) > 0
|
||
|
"if has("vms")
|
||
|
"call ada#Switch_Session (
|
||
|
"\ expand('~')[0:-2] . ".vimfiles.session]gnat_" .
|
||
|
"\ fnamemodify (self.Project_File, ":t:r") . ".vim")
|
||
|
"else
|
||
|
"call ada#Switch_Session (
|
||
|
"\ expand('~') . "/vimfiles/session/gnat_" .
|
||
|
"\ fnamemodify (self.Project_File, ":t:r") . ".vim")
|
||
|
"endif
|
||
|
"else
|
||
|
"call ada#Switch_Session ('')
|
||
|
"endif
|
||
|
|
||
|
return
|
||
|
endfunction gnat#Set_Project_File " }}}1
|
||
|
|
||
|
function gnat#Get_Command (Command) dict " {{{1
|
||
|
let l:Command = eval ('self.' . a:Command . '_Command')
|
||
|
return eval (l:Command)
|
||
|
endfunction gnat#Get_Command " }}}1
|
||
|
|
||
|
function gnat#Set_Session (...) dict " {{{1
|
||
|
if argc() == 1 && fnamemodify (argv(0), ':e') == 'gpr'
|
||
|
call self.Set_Project_File (argv(0))
|
||
|
elseif strlen (v:servername) > 0
|
||
|
call self.Set_Project_File (v:servername . '.gpr')
|
||
|
endif
|
||
|
endfunction gnat#Set_Session " }}}1
|
||
|
|
||
|
function gnat#New () " {{{1
|
||
|
let l:Retval = {
|
||
|
\ 'Make' : function ('gnat#Make'),
|
||
|
\ 'Pretty' : function ('gnat#Pretty'),
|
||
|
\ 'Find' : function ('gnat#Find'),
|
||
|
\ 'Tags' : function ('gnat#Tags'),
|
||
|
\ 'Set_Project_File' : function ('gnat#Set_Project_File'),
|
||
|
\ 'Set_Session' : function ('gnat#Set_Session'),
|
||
|
\ 'Get_Command' : function ('gnat#Get_Command'),
|
||
|
\ 'Project_File' : '',
|
||
|
\ 'Make_Command' : '"gnat make -P " . self.Project_File . " -F -gnatef "',
|
||
|
\ 'Pretty_Command' : '"gnat pretty -P " . self.Project_File . " "',
|
||
|
\ 'Find_Program' : '"gnat find -P " . self.Project_File . " -F "',
|
||
|
\ 'Tags_Command' : '"gnat xref -P " . self.Project_File . " -v *.AD*"',
|
||
|
\ 'Error_Format' : '%f:%l:%c: %trror: %m,' .
|
||
|
\ '%f:%l:%c: %tarning: %m,' .
|
||
|
\ '%f:%l:%c: (%ttyle) %m'}
|
||
|
|
||
|
return l:Retval
|
||
|
endfunction gnat#New " }}}1
|
||
|
|
||
|
function gnat#Insert_Tags_Header () " {{{1
|
||
|
1insert
|
||
|
!_TAG_FILE_FORMAT 1 /extended format; --format=1 will not append ;" to lines/
|
||
|
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
|
||
|
!_TAG_PROGRAM_AUTHOR AdaCore /info@adacore.com/
|
||
|
!_TAG_PROGRAM_NAME gnatxref //
|
||
|
!_TAG_PROGRAM_URL http://www.adacore.com /official site/
|
||
|
!_TAG_PROGRAM_VERSION 5.05w //
|
||
|
.
|
||
|
return
|
||
|
endfunction gnat#Insert_Tags_Header " }}}1
|
||
|
|
||
|
finish " 1}}}
|
||
|
|
||
|
"------------------------------------------------------------------------------
|
||
|
" Copyright (C) 2006 Martin Krischik
|
||
|
"
|
||
|
" Vim is Charityware - see ":help license" or uganda.txt for licence details.
|
||
|
"------------------------------------------------------------------------------
|
||
|
" vim: textwidth=0 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
|
||
|
" vim: foldmethod=marker
|