13cc79e5cSAmaiKinono.. _ctags-lang-julia(7): 23cc79e5cSAmaiKinono 33cc79e5cSAmaiKinono============================================================== 43cc79e5cSAmaiKinonoctags-lang-julia 53cc79e5cSAmaiKinono============================================================== 63cc79e5cSAmaiKinono------------------------------------------------------------------- 73cc79e5cSAmaiKinonoRandom notes about tagging Julia source code with Universal-ctags 83cc79e5cSAmaiKinono------------------------------------------------------------------- 93cc79e5cSAmaiKinono:Version: @VERSION@ 103cc79e5cSAmaiKinono:Manual group: Universal-ctags 113cc79e5cSAmaiKinono:Manual section: 7 123cc79e5cSAmaiKinono 133cc79e5cSAmaiKinonoSYNOPSIS 143cc79e5cSAmaiKinono-------- 153cc79e5cSAmaiKinono| **@CTAGS_NAME_EXECUTABLE@** ... --languages=+Julia ... 163cc79e5cSAmaiKinono| **@CTAGS_NAME_EXECUTABLE@** ... --language-force=Julia ... 173cc79e5cSAmaiKinono| **@CTAGS_NAME_EXECUTABLE@** ... --map-Julia=+.jl ... 183cc79e5cSAmaiKinono 193cc79e5cSAmaiKinonoDESCRIPTION 203cc79e5cSAmaiKinono----------- 213cc79e5cSAmaiKinonoThis man page gathers random notes about tagging Julia source code. 223cc79e5cSAmaiKinono 233cc79e5cSAmaiKinonoTAGGING ``import`` AND ``using`` EXPRESSIONS 243cc79e5cSAmaiKinono-------------------------------------------- 253cc79e5cSAmaiKinono 263cc79e5cSAmaiKinonoSummary 273cc79e5cSAmaiKinono~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283cc79e5cSAmaiKinono 293cc79e5cSAmaiKinono`using X` 303cc79e5cSAmaiKinono 313cc79e5cSAmaiKinono ==== ========== ================== =================== 323cc79e5cSAmaiKinono name kind role other noticeable fields 333cc79e5cSAmaiKinono ==== ========== ================== =================== 343cc79e5cSAmaiKinono X module used N/A 353cc79e5cSAmaiKinono ==== ========== ================== =================== 363cc79e5cSAmaiKinono 373cc79e5cSAmaiKinono`using X: a, b` 383cc79e5cSAmaiKinono 393cc79e5cSAmaiKinono ==== ========== ================== =================== 403cc79e5cSAmaiKinono name kind role other noticeable fields 413cc79e5cSAmaiKinono ==== ========== ================== =================== 423cc79e5cSAmaiKinono X module namespace N/A 433cc79e5cSAmaiKinono a, b unknown used scope:module:X 443cc79e5cSAmaiKinono ==== ========== ================== =================== 453cc79e5cSAmaiKinono 463cc79e5cSAmaiKinono`import X` 473cc79e5cSAmaiKinono 483cc79e5cSAmaiKinono ==== ========== ================== =================== 493cc79e5cSAmaiKinono name kind role other noticeable fields 503cc79e5cSAmaiKinono ==== ========== ================== =================== 513cc79e5cSAmaiKinono X module imported N/A 523cc79e5cSAmaiKinono ==== ========== ================== =================== 533cc79e5cSAmaiKinono 543cc79e5cSAmaiKinono`import X.a, Y.b` 553cc79e5cSAmaiKinono 563cc79e5cSAmaiKinono ==== ========== ================== =================== 573cc79e5cSAmaiKinono name kind role other noticeable fields 583cc79e5cSAmaiKinono ==== ========== ================== =================== 593cc79e5cSAmaiKinono X, Y module namespace N/A 603cc79e5cSAmaiKinono a unknown imported scope:module:X 613cc79e5cSAmaiKinono b unknown imported scope:module:Y 623cc79e5cSAmaiKinono ==== ========== ================== =================== 633cc79e5cSAmaiKinono 643cc79e5cSAmaiKinono`import X: a, b` 653cc79e5cSAmaiKinono 663cc79e5cSAmaiKinono ==== ========== ================== =================== 673cc79e5cSAmaiKinono name kind role other noticeable fields 683cc79e5cSAmaiKinono ==== ========== ================== =================== 693cc79e5cSAmaiKinono X module namespace N/A 703cc79e5cSAmaiKinono a,b unknown imported scope:module:X 713cc79e5cSAmaiKinono ==== ========== ================== =================== 723cc79e5cSAmaiKinono 733cc79e5cSAmaiKinonoExamples 743cc79e5cSAmaiKinono~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 753cc79e5cSAmaiKinono"input.jl" 763cc79e5cSAmaiKinono 773cc79e5cSAmaiKinono.. code-block:: Julia 783cc79e5cSAmaiKinono 793cc79e5cSAmaiKinono using X0 803cc79e5cSAmaiKinono 813cc79e5cSAmaiKinono"output.tags" 823cc79e5cSAmaiKinonowith "--options=NONE -o - --extras=+r --fields=+rzK input.jl" 833cc79e5cSAmaiKinono 843cc79e5cSAmaiKinono.. code-block:: tags 853cc79e5cSAmaiKinono 86*4d8561a9SMasatake YAMATO X0 input.jl /^using X0$/;" kind:module roles:used 873cc79e5cSAmaiKinono 883cc79e5cSAmaiKinono``--extras=+r`` (or ``--extras=+{reference}``) option is needed for this tag, 893cc79e5cSAmaiKinonosince it's a reference tag. This is because module ``X`` is not defined here. 903cc79e5cSAmaiKinonoIt is defined in another file. Enable ``roles:`` field with ``--fields=+r`` is 913cc79e5cSAmaiKinonofor recording that the module is "used", i.e., loaded by ``using``. 923cc79e5cSAmaiKinono 933cc79e5cSAmaiKinono"input.jl" 943cc79e5cSAmaiKinono 953cc79e5cSAmaiKinono.. code-block:: Julia 963cc79e5cSAmaiKinono 973cc79e5cSAmaiKinono import X1.a, X2.b, X3 983cc79e5cSAmaiKinono 993cc79e5cSAmaiKinono"output.tags" 1003cc79e5cSAmaiKinonowith "--options=NONE -o - --extras=+r --fields=+rzKZ input.jl" 1013cc79e5cSAmaiKinono 1023cc79e5cSAmaiKinono.. code-block:: tags 1033cc79e5cSAmaiKinono 104*4d8561a9SMasatake YAMATO X1 input.jl /^import X1.a, X2.b, X3$/;" kind:module roles:namespace 105*4d8561a9SMasatake YAMATO X2 input.jl /^import X1.a, X2.b, X3$/;" kind:module roles:namespace 106*4d8561a9SMasatake YAMATO X3 input.jl /^import X1.a, X2.b, X3$/;" kind:module roles:imported 107*4d8561a9SMasatake YAMATO a input.jl /^import X1.a, X2.b, X3$/;" kind:unknown scope:module:X1 roles:imported 108*4d8561a9SMasatake YAMATO b input.jl /^import X1.a, X2.b, X3$/;" kind:unknown scope:module:X2 roles:imported 1093cc79e5cSAmaiKinono 1103cc79e5cSAmaiKinonoWhy ``X1`` and ``X2`` have role "namespace", while ``X3`` have role "imported"? 1113cc79e5cSAmaiKinonoIt's because the symbol ``a`` in module ``X1``, and ``b`` in module ``X2`` are 1123cc79e5cSAmaiKinonobrought to the current scope, but ``X1`` and ``X2`` themselves are not. We use 1133cc79e5cSAmaiKinono"namespace" role for such modules. 1143cc79e5cSAmaiKinono 1153cc79e5cSAmaiKinono``X3`` is different. The symbol ``X3``, together with all exported symbols in 1163cc79e5cSAmaiKinono``X3``, is brought to current scope. For such modules, we use "imported" or 1173cc79e5cSAmaiKinono"used" role depending whether they are loaded by ``import`` or ``using``. 1183cc79e5cSAmaiKinono 1193cc79e5cSAmaiKinonoAlso, notice that ``a`` and ``b`` have the "unknown" kind. This is because we 1203cc79e5cSAmaiKinonocannot know whether it's a function, constant, or macro, etc. 1213cc79e5cSAmaiKinono 1223cc79e5cSAmaiKinonoSEE ALSO 1233cc79e5cSAmaiKinono-------- 1243cc79e5cSAmaiKinonoctags(1), ctags-client-tools(7) 125