I would know how to code an UltraEdit script which searches in all files of a project for the definition of the function at caret position and open that file respectively make it active and position the caret on the function definition line in this file. But I do not think it is really a good to code such a script for various reasons.
First, with using a project and a syntax highlighting wordfile, the function list can display not only the functions defined in the active file. The function list can display also all functions defined in any file of a project with clicking on secondary (right) mouse button on Function List and clicking with primary (left) mouse button on List for all Project Files
. That would already help.
Second, Exuberant Ctags
as installed with UEStudio and UltraEdit supports currently 41 languages directly, but not xHarbour.
However, by reading carefully the Ctags manual
it can be seen that it is possible to define support for any language by yourself. Among -f "%fo"
and -L "%fi"
to define name of tag list file and the name of the file containing the file names of the project passed both by UES to Ctags via %fo
, some additional options are needed to use Ctags for a not built-in supported language like xHarbour.
To create a symbol database for a not built-in supported language Ctags offers the options --langdef=
. With those 3 options and perhaps some more if necessary it should be possible that Ctags parses the xHarbour files of the UEStudio project for function definitions and put them into the tag list file like UEStudio does to create the function list. This would make it possible to use the Find Symbol
I don't know if the built-in symbol parser of UEStudio can be also used for any language. There is /Member String =
and /Variable String =
in some syntax highlighting wordfiles which are for the symbol parser of UEStudio. But I don't know if those regular expression definitions are evaluated only on some languages defined by the language marker keyword like C_LANG
or can be used for any language. I have just sent an email to IDM support with appropriate questions and will post the answers useful for the user community here.
/Member String =
and /Variable String =
are not associated with the language markers. They are used to extend the symbol parsing capability for IntelliTip features for a better language intellisense. They cannot be really used for any language. Extending the built-in symbol parser of UEStudio for other languages than the supported languages is not possible yet in UES v14.10. The built-in symbol parser of UEStudio is based on Exuberant Ctags but was enhanced and improved by the developers of IDM.