Man page - ctags-universal-lang-julia(7)

Packages contains this manual

Manual

CTAGS-LANG-JULIA

NAME
SYNOPSIS
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

Image grohtml-3931469-1.png

using X: a, b

Image grohtml-3931469-2.png

import X

Image grohtml-3931469-3.png

import X.a, Y.b

Image grohtml-3931469-4.png

import X: a, b

Image grohtml-3931469-5.png

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)