.\" Man page generated from reStructuredText. . .TH CTAGS-LANG-JULIA 7 "" "5.9.0" "Universal-ctags" .SH NAME ctags-lang-julia \- Random notes about tagging Julia source code with Universal-ctags . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .SH SYNOPSIS .nf \fBctags\fP ... \-\-languages=+Julia ... \fBctags\fP ... \-\-language\-force=Julia ... \fBctags\fP ... \-\-map\-Julia=+.jl ... .fi .sp .SH DESCRIPTION .sp This man page gathers random notes about tagging Julia source code. .SH TAGGING IMPORT AND USING EXPRESSIONS .SS Summary .sp \fIusing X\fP .INDENT 0.0 .INDENT 3.5 .TS center; |l|l|l|l|. _ T{ name T} T{ kind T} T{ role T} T{ other noticeable fields T} _ T{ X T} T{ module T} T{ used T} T{ N/A T} _ .TE .UNINDENT .UNINDENT .sp \fIusing X: a, b\fP .INDENT 0.0 .INDENT 3.5 .TS center; |l|l|l|l|. _ T{ name T} T{ kind T} T{ role T} T{ other noticeable fields T} _ T{ X T} T{ module T} T{ namespace T} T{ N/A T} _ T{ a, b T} T{ unknown T} T{ used T} T{ scope:module:X T} _ .TE .UNINDENT .UNINDENT .sp \fIimport X\fP .INDENT 0.0 .INDENT 3.5 .TS center; |l|l|l|l|. _ T{ name T} T{ kind T} T{ role T} T{ other noticeable fields T} _ T{ X T} T{ module T} T{ imported T} T{ N/A T} _ .TE .UNINDENT .UNINDENT .sp \fIimport X.a, Y.b\fP .INDENT 0.0 .INDENT 3.5 .TS center; |l|l|l|l|. _ T{ name T} T{ kind T} T{ role T} T{ other noticeable fields T} _ T{ X, Y T} T{ module T} T{ namespace T} T{ N/A T} _ T{ a T} T{ unknown T} T{ imported T} T{ scope:module:X T} _ T{ b T} T{ unknown T} T{ imported T} T{ scope:module:Y T} _ .TE .UNINDENT .UNINDENT .sp \fIimport X: a, b\fP .INDENT 0.0 .INDENT 3.5 .TS center; |l|l|l|l|. _ T{ name T} T{ kind T} T{ role T} T{ other noticeable fields T} _ T{ X T} T{ module T} T{ namespace T} T{ N/A T} _ T{ a,b T} T{ unknown T} T{ imported T} T{ scope:module:X T} _ .TE .UNINDENT .UNINDENT .SS Examples .sp "input.jl" .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C using X0 .ft P .fi .UNINDENT .UNINDENT .sp "output.tags" with "\-\-options=NONE \-o \- \-\-extras=+r \-\-fields=+rzK input.jl" .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C X0 input.jl /^using X0$/;" kind:module roles:used .ft P .fi .UNINDENT .UNINDENT .sp \fB\-\-extras=+r\fP (or \fB\-\-extras=+{reference}\fP) option is needed for this tag, since it\(aqs a reference tag. This is because module \fBX\fP is not defined here. It is defined in another file. Enable \fBroles:\fP field with \fB\-\-fields=+r\fP is for recording that the module is "used", i.e., loaded by \fBusing\fP\&. .sp "input.jl" .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C import X1.a, X2.b, X3 .ft P .fi .UNINDENT .UNINDENT .sp "output.tags" with "\-\-options=NONE \-o \- \-\-extras=+r \-\-fields=+rzKZ input.jl" .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C 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 .ft P .fi .UNINDENT .UNINDENT .sp Why \fBX1\fP and \fBX2\fP have role "namespace", while \fBX3\fP have role "imported"? It\(aqs because the symbol \fBa\fP in module \fBX1\fP, and \fBb\fP in module \fBX2\fP are brought to the current scope, but \fBX1\fP and \fBX2\fP themselves are not. We use "namespace" role for such modules. .sp \fBX3\fP is different. The symbol \fBX3\fP, together with all exported symbols in \fBX3\fP, is brought to current scope. For such modules, we use "imported" or "used" role depending whether they are loaded by \fBimport\fP or \fBusing\fP\&. .sp Also, notice that \fBa\fP and \fBb\fP have the "unknown" kind. This is because we cannot know whether it\(aqs a function, constant, or macro, etc. .SH SEE ALSO .sp ctags(1), ctags\-client\-tools(7) .\" Generated by docutils manpage writer. .