ctags defintions for Igor Pro procedures

Average rating
(1 vote)

The following language definition for exuberant ctags or the newer universal-ctags allows to equip your editor of choice with a ctags database for Igor Pro procedure code.

Add the following to ~/ctags.cnf (on Windows, not sure about MacOSX):

--langdef=igorpro
--langmap=igorpro:.ipf
--regex-igorpro=/^[[:space:]]*threadsafe[[:space:]]+static[[:space:]]+Function[\/A-Z]*[[:space:]]+([A-Z0-9_]+)\([^:]+$/\1/f,function definition/i
--regex-igorpro=/^[[:space:]]*threadsafe[[:space:]]+Function[\/A-Z]*[[:space:]]+([A-Z0-9_]+)\([^:]+$/\1 [ts]/f,function definition/i
--regex-igorpro=/^[[:space:]]*static[[:space:]]+Function[\/A-Z]*[[:space:]]+([A-Z0-9_]+)\([^:]+$/\1/f,function definition/i
--regex-igorpro=/^[[:space:]]*Function[\/A-Z]*[[:space:]]+([A-Z0-9_]+)\([^:]+$/\1/f,function definition/i
--regex-igorpro=/^[[:space:]]*Function[\/A-Z]*[[:space:]]+([A-Z0-9_]+)\(.* : [A-Z]+$/\1/p,gui procedure/i
--regex-igorpro=/^[[:space:]]*Macro[[:space:]]+([A-Z0-9_]+)\(/\1/m,macro definition/i
--regex-igorpro=/^[[:space:]]*Window[[:space:]]+([A-Z0-9_]+)\(/\1/m,macro definition/i
--regex-igorpro=/^[[:space:]]*Graph[[:space:]]+([A-Z0-9_]+)\(/\1/m,macro definition/i
--regex-igorpro=/^[[:space:]]*Proc[[:space:]]+([A-Z0-9_]+)\(/\1/m,macro definition/i
--regex-igorpro=/^[[:space:]]*Picture[[:space:]]+([A-Z0-9_]+)/\1/b,picture/i
--regex-igorpro=/^[[:space:]]*static[[:space:]]+StrConstant[[:space:]]+([A-Z0-9_]+)/\1/s,string constant/i
--regex-igorpro=/^[[:space:]]*static[[:space:]]+Constant[[:space:]]+([A-Z0-9_]+)/\1/c,variable constant/i
--regex-igorpro=/^[[:space:]]*static[[:space:]]+Structure[[:space:]]+([A-Z0-9_]+)/\1/t,structure definition/i
--regex-igorpro=/^[[:space:]]*StrConstant[[:space:]]+([A-Z0-9_]+)/\1/s,string constant/i
--regex-igorpro=/^[[:space:]]*Constant[[:space:]]+([A-Z0-9_]+)/\1/c,variable constant/i
--regex-igorpro=/^[[:space:]]*Structure[[:space:]]+([A-Z0-9_]+)/\1/t,structure definition/i

For vim and the taglist plugin define

let tlist_igorpro_settings = 'igorpro;s:StrConstant;c:Constant;f:Functions;p:GUI Procedures;m:Macros;t:Structures;b:Pictures'

Back to top