Help VimSuite verbessert

+ project_example.vim, settings_example.vim
update cscope.exe

git-svn-id: https://vimsuite.svn.sourceforge.net/svnroot/vimsuite/trunk@159 eb2d0018-73a3-4aeb-bfe9-1def61c9ec69
This commit is contained in:
stefan 2008-04-23 15:18:51 +00:00
parent e883e25a8a
commit b719f17fa1
6 changed files with 365 additions and 8 deletions

View File

@ -10,7 +10,7 @@
|BMSK.7| DAMOS-Tools |BMSK.7| DAMOS-Tools
============================================================================== ==============================================================================
*BMSK.1* Auswählen des Projektes *Projekt* *Project* *BMSK* *BMSK.1* Auswählen des Projektes *BMSK*
Ein BMSK-Projekt bezieht sich nicht auf eine VIM-Session, sondern nur auf den Ein BMSK-Projekt bezieht sich nicht auf eine VIM-Session, sondern nur auf den
Build-Prozess des BMSK-Projektes. Mit dem Auswählen eines Projektes werden nur Build-Prozess des BMSK-Projektes. Mit dem Auswählen eines Projektes werden nur

View File

@ -1,7 +1,5 @@
:BMSK-cscope bmsk.txt /*:BMSK-cscope* :BMSK-cscope bmsk.txt /*:BMSK-cscope*
:BMSK-ctags bmsk.txt /*:BMSK-ctags* :BMSK-ctags bmsk.txt /*:BMSK-ctags*
:Bmsk bmsk.txt /*:Bmsk*
:BmskDoku bmsk.txt /*:BmskDoku*
:BuffersUpdate bmsk.txt /*:BuffersUpdate* :BuffersUpdate bmsk.txt /*:BuffersUpdate*
:CCMchangeable ccm.txt /*:CCMchangeable* :CCMchangeable ccm.txt /*:CCMchangeable*
:CCMcheckout ccm.txt /*:CCMcheckout* :CCMcheckout ccm.txt /*:CCMcheckout*
@ -17,6 +15,8 @@
:GrepBmsk bmsk.txt /*:GrepBmsk* :GrepBmsk bmsk.txt /*:GrepBmsk*
:InsertCHeader vimsuite.txt /*:InsertCHeader* :InsertCHeader vimsuite.txt /*:InsertCHeader*
:Lint bmsk.txt /*:Lint* :Lint bmsk.txt /*:Lint*
:Make bmsk.txt /*:Make*
:MakeDoku bmsk.txt /*:MakeDoku*
:MarkLongLines vimsuite.txt /*:MarkLongLines* :MarkLongLines vimsuite.txt /*:MarkLongLines*
:MarkLongLinesOff vimsuite.txt /*:MarkLongLinesOff* :MarkLongLinesOff vimsuite.txt /*:MarkLongLinesOff*
:RENAMEoutput bmsk.txt /*:RENAMEoutput* :RENAMEoutput bmsk.txt /*:RENAMEoutput*
@ -34,6 +34,7 @@
:SetEgas bmsk.txt /*:SetEgas* :SetEgas bmsk.txt /*:SetEgas*
:SetMotorvariante bmsk.txt /*:SetMotorvariante* :SetMotorvariante bmsk.txt /*:SetMotorvariante*
:SetMuster bmsk.txt /*:SetMuster* :SetMuster bmsk.txt /*:SetMuster*
:SetProject vimsuite.txt /*:SetProject*
:SetSWStand bmsk.txt /*:SetSWStand* :SetSWStand bmsk.txt /*:SetSWStand*
:SetXlint bmsk.txt /*:SetXlint* :SetXlint bmsk.txt /*:SetXlint*
:SyntaxShowGroup vimsuite.txt /*:SyntaxShowGroup* :SyntaxShowGroup vimsuite.txt /*:SyntaxShowGroup*
@ -61,8 +62,8 @@ DelAllTrailingWhitespace vimsuite.txt /*DelAllTrailingWhitespace*
DirDiff vimsuite.txt /*DirDiff* DirDiff vimsuite.txt /*DirDiff*
GrepDir vimsuite.txt /*GrepDir* GrepDir vimsuite.txt /*GrepDir*
GrepFiles vimsuite.txt /*GrepFiles* GrepFiles vimsuite.txt /*GrepFiles*
Project bmsk.txt /*Project* Project vimsuite.txt /*Project*
Projekt bmsk.txt /*Projekt* Projekt vimsuite.txt /*Projekt*
Reformat vimsuite.txt /*Reformat* Reformat vimsuite.txt /*Reformat*
SVN svn.txt /*SVN* SVN svn.txt /*SVN*
SVNstudio svn.txt /*SVNstudio* SVNstudio svn.txt /*SVNstudio*
@ -72,7 +73,10 @@ Synergy/CM ccm.txt /*Synergy\/CM*
VimSuite vimsuite.txt /*VimSuite* VimSuite vimsuite.txt /*VimSuite*
VimSuiteEinstellungen vimsuite.txt /*VimSuiteEinstellungen* VimSuiteEinstellungen vimsuite.txt /*VimSuiteEinstellungen*
VimSuiteInstallation vimsuite.txt /*VimSuiteInstallation* VimSuiteInstallation vimsuite.txt /*VimSuiteInstallation*
VimSuiteProject vimsuite.txt /*VimSuiteProject*
VimSuiteProjekt vimsuite.txt /*VimSuiteProjekt*
VimSuiteTools vimsuite.txt /*VimSuiteTools* VimSuiteTools vimsuite.txt /*VimSuiteTools*
Workarea vimsuite.txt /*Workarea*
b:GrepDir vimsuite.txt /*b:GrepDir* b:GrepDir vimsuite.txt /*b:GrepDir*
b:GrepFiles vimsuite.txt /*b:GrepFiles* b:GrepFiles vimsuite.txt /*b:GrepFiles*
b:commentstring vimsuite.txt /*b:commentstring* b:commentstring vimsuite.txt /*b:commentstring*
@ -83,6 +87,7 @@ ccm.txt ccm.txt /*ccm.txt*
cscope_macros vimsuite.txt /*cscope_macros* cscope_macros vimsuite.txt /*cscope_macros*
g:GrepDir vimsuite.txt /*g:GrepDir* g:GrepDir vimsuite.txt /*g:GrepDir*
g:GrepFiles vimsuite.txt /*g:GrepFiles* g:GrepFiles vimsuite.txt /*g:GrepFiles*
g:WA vimsuite.txt /*g:WA*
projects.txt bmsk.txt /*projects.txt* projects.txt bmsk.txt /*projects.txt*
svn svn.txt /*svn* svn svn.txt /*svn*
svn.txt svn.txt /*svn.txt* svn.txt svn.txt /*svn.txt*
@ -92,4 +97,5 @@ vimsuite.1 vimsuite.txt /*vimsuite.1*
vimsuite.2 vimsuite.txt /*vimsuite.2* vimsuite.2 vimsuite.txt /*vimsuite.2*
vimsuite.3 vimsuite.txt /*vimsuite.3* vimsuite.3 vimsuite.txt /*vimsuite.3*
vimsuite.4 vimsuite.txt /*vimsuite.4* vimsuite.4 vimsuite.txt /*vimsuite.4*
vimsuite.5 vimsuite.txt /*vimsuite.5*
vimsuite.txt vimsuite.txt /*vimsuite.txt* vimsuite.txt vimsuite.txt /*vimsuite.txt*

View File

@ -4,7 +4,8 @@
|vimsuite.1| Bestandteile |vimsuite.1| Bestandteile
|vimsuite.2| Installation |vimsuite.2| Installation
|vimsuite.3| Einstellungen |vimsuite.3| Einstellungen
|vimsuite.4| VimSuiteTools |vimsuite.4| Projekte
|vimsuite.5| VimSuiteTools
============================================================================== ==============================================================================
*vimsuite.1* Bestandteile der VimSuite *VimSuite* *vimsuite* *Bestandteile* *vimsuite.1* Bestandteile der VimSuite *VimSuite* *vimsuite* *Bestandteile*
@ -49,6 +50,10 @@ Einstellungen f
gemacht werden. Alternativ kann dort ein eigenes vimrc-File mit|source|geladen gemacht werden. Alternativ kann dort ein eigenes vimrc-File mit|source|geladen
werden. werden.
*g:WA* *Workarea*
Die Variable g:WA sollte auf ein Verzeichnis zeigen, in dem die Projekte der
VimSuite liegen. Standard ist 'C:/wa'.
*b:GrepFiles* *g:GrepFiles* *GrepFiles* *b:GrepFiles* *g:GrepFiles* *GrepFiles*
Die Variable b:GrepFiles kann z.B. in einem|filetype-plugin|gesetzt werden. Die Variable b:GrepFiles kann z.B. in einem|filetype-plugin|gesetzt werden.
g:GrepFiles ist normalerweise *. Für C-Projekte kann die Variable z.B. > g:GrepFiles ist normalerweise *. Für C-Projekte kann die Variable z.B. >
@ -67,7 +72,36 @@ Diese Variable wird verwendet, um Code auszukommentieren. Sie sollte in einem
|filetype-plugin|gesetzt werden. |filetype-plugin|gesetzt werden.
============================================================================== ==============================================================================
*vimsuite.4* VimSuiteTools *VimSuiteTools* *vimsuite.4* Projekte *Projekt* *Project* *VimSuiteProjekt* *VimSuiteProject*
Ein Projekt bezieht sich nicht auf eine VIM-Session, sondern auf ein
Entwicklungsprojekt. Im Menü VimSuite->Project werden alle erkannten Projekte
aufgelistet. Das Projekt kann mit dem Menü oder folgendem Befehl geladen
werden:
*:SetProject*
:SetProject [file] (Tab-Erweiterung funktioniert) Laden eines Projekts.
Ein Projekt sollte die Datei project.vim enthalten. Nach dieser Datei sucht
die VimSuite für die Auswahl von Projekten in allen Unterverzeichnissen von
|g:WA|. Eine Beispiel für Projekte, die ihre eigene Konfiguration verändern
können ist in project_example.vim und settings_example.vim zu sehen. Die
zweite Datei wird über den Make-Befehl 'Make vim-config' erzeugt und von der
ersten geladen. Die Datei project.vim kann aber auch beliebig anders aussehen.
Sie wird lediglich bei|SetProject| geladen.
==============================================================================
*vimsuite.5* VimSuiteTools *VimSuiteTools*
Um die Arbeit auf Windows-Systemen zu erleichtern, sind im Ordner tools ein
paar Programme, die auf diesem System üblicherweise nicht vorhanden sind:
- ctags.exe: http://ctags.sourceforge.net
- cscope.exe: http://cscope.sourceforge.net
- pythonXX.dll: http://www.python.org
- patch.exe, tee.exe: http://www.mingw.org
- DirDiff.bat: Diese Datei kann in's 'SendTo' Verzeichnis kopiert werden.
Anschließend können im Explorer zwei Verzeichnisse markiert und mit
|DirDiff|verglichen werden.
*:SessionLoad* *:SessionLoad*
:SessionLoad [Name] Laden der Session mit dem Namen Name. :SessionLoad [Name] Laden der Session mit dem Namen Name.

View File

@ -0,0 +1,295 @@
let s:project_file = expand('<sfile>')
if exists('s:did_projectplugin')
finish
endif
let s:did_projectplugin='myProject'
let current_compiler = 'myCompiler'
" ========
" Settings
" ========
function s:ProjectCreateSettings(setting_file)
echo 'Create' a:setting_file
if !exists('s:makeCommand')
let s:makeCommand = expand(s:basedir . '/make.bat')
endif
let command = escape(s:makeCommand, ' \') . ' vim-config'
echo command
call system(command)
if !filereadable(a:setting_file)
throw 'Could not create Settings-file ' . a:setting_file
endif
endfunction
function s:ProjectLoadSettings()
let s:basedir = fnamemodify(s:project_file, ':h')
execute 'cd ' . s:basedir
let s:setting_file = expand(s:basedir . '/out/settings.vim')
" Create setting file
if !filereadable(s:setting_file)
call s:ProjectCreateSettings()
endif
" Load setting file
try
echo 'Load ' . s:setting_file
" don't use 'source', so you can use script-variables
for command in readfile(s:setting_file)
execute command
endfor
catch
echoerr 'could not read' s:setting_file
endtry
endfunction
" =====
" Menue
" =====
let s:ProjectMenuLocation = 90
let s:ProjectMenuName = '&BMSX.'
function s:ProjectRedrawMenu()
" Settings
" ...
" Compile
exec 'anoremenu .30.10 '.s:ProjectMenuName.
\'&Compile.&Build<tab>:Make'.
\' :Make<CR>'
exec 'anoremenu ..40 '.s:ProjectMenuName.
\'&Compile.&Clean<tab>:Make\ clean'.
\' :Make clean<CR>'
exec 'anoremenu ..45 '.s:ProjectMenuName.
\'&Compile.&Clean\ all<tab>:Make\ distclean'.
\' :Make distclean<CR>'
exec 'anoremenu ..50 '. s:ProjectMenuName.
\'&Compile.-sep- :'
exec 'anoremenu ..60 '.s:ProjectMenuName.
\'&Compile.&Show\ Errors<tab>:cl'.
\' :cl<CR>'
exec 'anoremenu ..70 '.s:ProjectMenuName.
\'&Compile.&Open\ Error\ Window<tab>:copen'.
\' :copen<CR>'
exec 'anoremenu ..75 '.s:ProjectMenuName.
\'&Compile.&Parse\ make\.log<tab>:cfile\ out/make\.log'.
\' :cfile out/make.log<CR>'
exec 'anoremenu ..80 '.s:ProjectMenuName.
\'&Compile.Goto\ &Error<tab>:cc'.
\' :cc<CR>'
exec 'anoremenu ..90 '.s:ProjectMenuName.
\'&Compile.Goto\ &next\ Error<tab>:cn'.
\' :cn<CR>'
" Search
exec 'anoremenu ..20 '.s:ProjectMenuName.
\'&Search.Goto\ &Cscope-Tag<tab>:cscope'.
\' :cscope find i <C-R><C-W><CR>'
exec 'anoremenu ..30 '.s:ProjectMenuName.
\'&Search.Goto\ &CTag<tab>:tag'.
\' :tag <C-R><C-W><CR>'
exec 'anoremenu ..40 '.s:ProjectMenuName.
\'&Search.List\ &CTags<tab>:tselect'.
\' :tselect /<C-R><C-W><CR>'
exec 'anoremenu ..50 '.s:ProjectMenuName.
\'&Search.Update\ c&tags<tab>:Make\ ctags'.
\' :Make ctags<CR>'
exec 'anoremenu ..60 '.s:ProjectMenuName.
\'&Search.Update\ C&scope<tab>:Make\ cscope'.
\' :Make cscope<CR>'
exec 'anoremenu ..70 '.s:ProjectMenuName.
\'&Search.Disconnect\ C&scope<tab>:cscope\ kill\ -1'.
\' :cscope kill -1<CR>'
endfunction
" ====
" Make
" ====
function s:GetMakeOptions(args)
let makeopts = a:args
return makeopts
endfunction
function GetAllMakeCompletions(...)
return join(s:makegoals + s:makeopts, "\n")
endfunction
command -complete=custom,GetAllMakeCompletions -nargs=* Make call s:Make('<args>')
function s:Make(args)
echo a:args
CscopeDisconnect
execute 'make ' . s:GetMakeOptions(a:args)
CscopeConnect
try
clist
catch /E42/ " list is empty
echo 'no output'
endtry
endfunction
" -----------------
" CSCOPE-Connection
" -----------------
command CscopeConnect call s:CscopeConnect(s:cscopefile)
function s:CscopeConnect(cscopefile)
if filereadable(a:cscopefile)
execute 'cscope add ' . a:cscopefile
"else
"echomsg 'cscope: Could not connect: File ' . a:cscopefile . ' does not exist'
endif
endfunction
command CscopeDisconnect call s:CscopeDisconnect()
function s:CscopeDisconnect()
cscope kill -1
endfunction
" ========
" Settings
" ========
" ...
" =====
" Tools
" =====
" ...
" ========
" Compiler
" ========
function s:SetCompiler()
" clear errorformats
set errorformat=
setlocal errorformat=
" stdout and stderr to stdout and file
let &shellpipe = '2>&1 | ' . g:tee
" automatic errorfilename
set makeef=
" -------
" Doxygen
" -------
set errorformat+=%t%.%#:\ Doxygen:\ %f:%l:\ %m
" -----
" LaTeX
" -----
set errorformat+=%t%.%#:\ LaTeX:\ %f:%l:\ %m
" ----------
" A2L-Parser
" ----------
set errorformat+=%t%.%#:\ Yacc:\ %f:%l:\ %m
set errorformat+=%t%.%#:\ Yacc:\ %f:\ %m
" -----
" BMS-X
" -----
set errorformat+=BMS-X:\ %tarning:\ %f:\ %m
set errorformat+=BMS-X:\ %tarning:\ %m
set errorformat+=BMS-X:\ %trror:\ %f:\ %m
set errorformat+=BMS-X:\ %trror:\ %m
" -----
" scons
" -----
set errorformat+=%+Gscons:\ ***\ %m
set errorformat+=%+Gscons:\ %m\ is\ up\ to\ date.
set errorformat+=%+Gscons:\ done\ building\ targets.
set errorformat+=%Dos.chdir('%f')
set errorformat+=scons:\ %tarning:\ %m
" ------
" python
" ------
set errorformat+=%f:%l:\ User%tarning:\ %m
set errorformat+=%E%\\s%#File\ \"%f\"\\,\ line\ %l\\,\ %m
set errorformat+=%C%m
set errorformat+=%Z%.%#Error:\ %m
set errorformat+=%E%\\s%#File\ \"<string>\"\\,\ line\ %l
set errorformat+=%C%m
set errorformat+=%-C\ %p^
set errorformat+=%Z%.%#Error:\ %m
" -------
" PC-Lint
" -------
set errorformat+=\"%f\"\\,\ line\ %l:\ %t%.%#\ \(pclint:%n\):%m
set errorformat+=%t%.%#\ %n:\ %m
set errorformat+=%t%.%#\ \(pclint:%n\):\ %m
" -------
" SP-Lint
" -------
set errorformat+=%A%f\(%l\):\ %m
set errorformat+=%A%f\(%l\):
set errorformat+=%A%f\(%l\\,%c\):\ %m
set errorformat+=%A%f\(%l\\,%c\):
set errorformat+=%C\ \ \ \ %m
" ---
" gcc
" ---
set errorformat+=%f:%l:%c:\ %t%*\\w:\ \[%n\]\ %m
set errorformat+=%*[^\"]\"%f\"%*\\D%l:\ %m
set errorformat+=\"%f\"%*\\D%l:\ %m
set errorformat+=%-G%f:%l:\ %trror:\ (Each\ undeclared\ identifier\ is\ reported\ only\ once
set errorformat+=%-G%f:%l:\ %trror:\ for\ each\ function\ it\ appears\ in.)
set errorformat+=%f:%l:\ %m
set errorformat+=\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m
set errorformat+=%D%*\\a[%*\\d]:\ Entering\ directory\ `%f'
set errorformat+=%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f'
set errorformat+=%D%*\\a:\ Entering\ directory\ `%f'
set errorformat+=%X%*\\a:\ Leaving\ directory\ `%f'
set errorformat+=%DMaking\ %*\\a\ in\ %f
" -----
" Tools
" -----
set errorformat+=%+G/bin/%.%#:\ %m
set errorformat+=%+G%.%#.exe:\ %m
set errorformat+=%+G%.%#.exe[%*\\d]:\ ***\ %m
" Error format from other programs: ...: ...
"set errorformat+=%+G%f:\ %m
endfunction
" ================
" Start of session
" ================
function s:ProjectOnStart()
" Load Settings
call s:ProjectLoadSettings()
" Menu
call s:ProjectRedrawMenu()
exec 'anoremenu .42 Hilfe.-MyProject- :'
exec 'anoremenu .43 Hilfe.MyProject<tab> :help myProject<CR>'
" Titel-Leiste
set titlelen=100
let &titlestring = '%t - (%-F) - %='
" Make Settings
let &cdpath = s:basedir
let &path = s:path
set notagrelative
let &tags = s:tags
let &cscopeprg = s:cscopeprg
let &makeprg = s:makeCommand . ' $*'
call s:SetCompiler()
CscopeDisconnect
CscopeConnect
endfunction
command ProjectUpdate call s:ProjectUpdate()
function s:ProjectUpdate()
" rewrite vim-config
Make vim-config
" reload file
execute 'SetProject ' . s:project_file
call s:ProjectOnStart()
endfunction
call s:ProjectOnStart()

View File

@ -0,0 +1,22 @@
" vim: filetype=vim
" ========
" Settings
" ========
let s:path = "c:/wa/bmsx,,c:/wa/bmsx/src/**,c:/wa/bmsx/out/k48_c1/d"
let s:tags = "c:/wa/bmsx/src/config/damos/tags,c:/wa/tools/python/2.5.1/tags,c:/wa/bmsx/src/make/tools/scons/tags,c:/wa/tools/shade/programme/makefile/v2.9.2/tags,c:/wa/bmsx/src/sg/z6xv/bosch/make.tags,c:/wa/bmsx/src/make/tags,c:/wa/bmsx/src/fsw/**/tags,c:/wa/bmsx/src/kt/**/tags,c:/wa/bmsx/src/bdl/**/tags,c:/wa/bmsx/src/sg/**/tags,c:/wa/bmsx/src/os/**/tags"
let s:cscopeprg = "c:/wa/bmsx/src/make/tools/tags/cscope.exe"
let s:cscopefile = "c:/wa/bmsx/out/k48_c1/cscope.out"
let s:makegoals = ["-h","-c","objs","lsts","metric","libs","doxygen-view-fsw","asms","doxygen-install-server","branch","ctags","doxygen-view-bdl","bosch-osp-ref","lint","tags","developertest","delivery","funktionsdoku","doxygen-view-os","doxygen-view-make","doxygen-view-sg","damos-dfiles","doxygen","doxygen-view-kt","vim-config","doxygen-view","shade","distclean","cscope","integrationstest","shade-config","lint-project","labelstex","kgs-ref","miktex-update","bmw-a2l","stags","a2l-parse","dtags","merged-a2l","shade-proj-tags","doxygen-conf","ptags","doxygen-install","damos-osp","functionstex","damos-config","mtags","shade-tags","tags-all"]
let s:makeopts = ["Motor=","Muster=","Stand=","verbose=","EXTRA_CCFLAGS=","funktionen=","CR=","text="]
let s:Motor = "K48"
let s:MotorVarianten = ["K48","K4X-EGAS","KXX","K7X-EGAS","K2X-EGAS"]
let s:Muster = "C1"
let s:MusterVarianten = ["C1"]
let s:SW_Stand = "Test"
let s:StandVarianten = ["Test","Release","Bosch"]
let s:basedir = "c:/wa/bmsx"
let s:Project = "bmsx"
let s:makeCommand = "c:/wa/bmsx/make.bat"
let g:sessionfile = "c:/wa/bmsx/out/session.vim"

Binary file not shown.