Man page - ctags-universal-lang-julia(7)
Packages contains this manual
- ctags-optlib(7)
- ctags-universal-lang-julia(7)
- tags(5)
- readtags(1)
- ctags-universal-faq(7)
- ctags-universal-lang-verilog(7)
- ctags-incompatibilities(7)
- ctags-universal-lang-python(7)
- ctags-universal-optlib(7)
- ctags-universal-incompatibilities(7)
- ctags-universal-lang-inko(7)
- ctags-universal-client-tools(7)
- ctags-universal-lang-sql(7)
- ctags-universal(1)
- ctags-universal-lang-r(7)
apt-get install universal-ctags
Manual
CTAGS-LANG-JULIA
NAMESYNOPSIS
DESCRIPTION
TAGGING IMPORT AND USING EXPRESSIONS
Summary
Examples
SEE ALSO
NAME
ctags-lang-julia - Random notes about tagging Julia source code with Universal-ctags
SYNOPSIS
ctags
...
--languages=+Julia ...
ctags
... --language-force=Julia ...
ctags
... --map-Julia=+.jl ...
DESCRIPTION
This man page gathers random notes about tagging Julia source code.
TAGGING IMPORT AND USING EXPRESSIONS
Summary
using X
using X: a, b
import X
import X.a, Y.b
import X: a, b
Examples
"input.jl"
using X0
"output.tags" with "--options=NONE -o - --extras=+r --fields=+rzK input.jl"
X0 input.jl /ˆusing X0$/;" kind:module roles:used
--extras=+r (or --extras=+{reference} ) option is needed for this tag, since it's a reference tag. This is because module X is not defined here. It is defined in another file. Enable roles: field with --fields=+r is for recording that the module is "used", i.e., loaded by using .
"input.jl"
import X1.a, X2.b, X3
"output.tags" with "--options=NONE -o - --extras=+r --fields=+rzKZ input.jl"
X1 input.jl
/ˆimport X1.a, X2.b, X3$/;" kind:module
roles:namespace
X2 input.jl /ˆimport X1.a, X2.b, X3$/;"
kind:module roles:namespace
X3 input.jl /ˆimport X1.a, X2.b, X3$/;"
kind:module roles:imported
a input.jl /ˆimport X1.a, X2.b, X3$/;"
kind:unknown scope:module:X1 roles:imported
b input.jl /ˆimport X1.a, X2.b, X3$/;"
kind:unknown scope:module:X2 roles:imported
Why X1 and X2 have role "namespace", while X3 have role "imported"? It's because the symbol a in module X1 , and b in module X2 are brought to the current scope, but X1 and X2 themselves are not. We use "namespace" role for such modules.
X3 is different. The symbol X3 , together with all exported symbols in X3 , is brought to current scope. For such modules, we use "imported" or "used" role depending whether they are loaded by import or using .
Also, notice that a and b have the "unknown" kind. This is because we cannot know whether it's a function, constant, or macro, etc.
SEE ALSO
ctags(1), ctags-client-tools(7)