148331065SMasatake YAMATO.. _ctags-lang-gdscript(7): 248331065SMasatake YAMATO 348331065SMasatake YAMATO============================================================== 448331065SMasatake YAMATOctags-lang-gdscript 548331065SMasatake YAMATO============================================================== 648331065SMasatake YAMATO-------------------------------------------------------------------- 748331065SMasatake YAMATORandom notes about tagging GDScript source code with Universal Ctags 848331065SMasatake YAMATO-------------------------------------------------------------------- 948331065SMasatake YAMATO:Version: @VERSION@ 1048331065SMasatake YAMATO:Manual group: Universal Ctags 1148331065SMasatake YAMATO:Manual section: 7 1248331065SMasatake YAMATO 1348331065SMasatake YAMATOSYNOPSIS 1448331065SMasatake YAMATO-------- 1548331065SMasatake YAMATO| **@CTAGS_NAME_EXECUTABLE@** ... --languages=+GDScript ... 1648331065SMasatake YAMATO| **@CTAGS_NAME_EXECUTABLE@** ... --language-force=GDScript ... 1748331065SMasatake YAMATO| **@CTAGS_NAME_EXECUTABLE@** ... --map-GDScript=+.gd ... 1848331065SMasatake YAMATO 1948331065SMasatake YAMATODESCRIPTION 2048331065SMasatake YAMATO----------- 2148331065SMasatake YAMATOThis man page gathers random notes about tagging GDScript source code 2248331065SMasatake YAMATOwith Universal Ctags. 2348331065SMasatake YAMATO 2448331065SMasatake YAMATOStoring Annotations 2548331065SMasatake YAMATO------------------- 2648331065SMasatake YAMATOLike the Python parser storing decorations to ``decorations`` field, 2748331065SMasatake YAMATOthe GDScript parser stores annotations 2848331065SMasatake YAMATOstarting from `@` to the language specific field, ``annotations``. 2948331065SMasatake YAMATOThough the field is enabled explicitly in following examples, the 3048331065SMasatake YAMATOfield is enabled by default. 3148331065SMasatake YAMATO 3248331065SMasatake YAMATO"input.gd" 3348331065SMasatake YAMATO 3448331065SMasatake YAMATO.. code-block:: GDScript 3548331065SMasatake YAMATO 3648331065SMasatake YAMATO @export 3748331065SMasatake YAMATO var s = "Hello" 3848331065SMasatake YAMATO 3948331065SMasatake YAMATO @master 4048331065SMasatake YAMATO func f(msg): 4148331065SMasatake YAMATO print(msg) 4248331065SMasatake YAMATO 4348331065SMasatake YAMATO"output.tags" 4448331065SMasatake YAMATOwith "--options=NONE --sort=no --fields-GDScript=+{annotations} -o - input.gd" 4548331065SMasatake YAMATO 4648331065SMasatake YAMATO.. code-block:: tags 4748331065SMasatake YAMATO 4848331065SMasatake YAMATO s input.gd /^var s = "Hello"$/;" v annotations:export 4948331065SMasatake YAMATO f input.gd /^func f(msg):$/;" m annotations:master 5048331065SMasatake YAMATO 5148331065SMasatake YAMATOExtracting `func` 5248331065SMasatake YAMATO----------------- 5348331065SMasatake YAMATOA language object defined with `func` keyword is tagged with ``method`` kind. 5448331065SMasatake YAMATOLike annotations, the parser stores keywords modifying `func` like `static` to 5548331065SMasatake YAMATOthe ``annotations`` field. 5648331065SMasatake YAMATO 5748331065SMasatake YAMATO"input.gd" 5848331065SMasatake YAMATO 5948331065SMasatake YAMATO.. code-block:: GDScript 6048331065SMasatake YAMATO 6148331065SMasatake YAMATO func f(x): 6248331065SMasatake YAMATO return x 6348331065SMasatake YAMATO 6448331065SMasatake YAMATO static func f_s(x): 6548331065SMasatake YAMATO reutrn x 6648331065SMasatake YAMATO 6748331065SMasatake YAMATO remote func f_r(x): 6848331065SMasatake YAMATO return x 6948331065SMasatake YAMATO 7048331065SMasatake YAMATO 7148331065SMasatake YAMATO"output.tags" 7248331065SMasatake YAMATOwith "--options=NONE --sort=no --fields=+K --fields-GDScript=+{annotations} -o - input.gd" 7348331065SMasatake YAMATO 7448331065SMasatake YAMATO.. code-block:: tags 7548331065SMasatake YAMATO 7648331065SMasatake YAMATO f input.gd /^func f(x):$/;" method 7748331065SMasatake YAMATO f_s input.gd /^static func f_s(x):$/;" method annotations:static 7848331065SMasatake YAMATO f_r input.gd /^remote func f_r(x):$/;" method annotations:remote 7948331065SMasatake YAMATO 8048331065SMasatake YAMATOTagging implicitly defined classes 8148331065SMasatake YAMATO---------------------------------- 8248331065SMasatake YAMATO"A file is a class!" in GDScript. A class is implicitly 8348331065SMasatake YAMATOdefined. Functions, variables, constants, and signals are parts of the 8448331065SMasatake YAMATOclass though the class is unnamed by default. 8548331065SMasatake YAMATO 8648331065SMasatake YAMATOIf the language specific extra, ``implicitClass``, is enabled, the 8748331065SMasatake YAMATOparser makes a anonymous tag for the class. The parser fills the scope 8848331065SMasatake YAMATOfields of the tags for all language objects defined in the file with 8948331065SMasatake YAMATOthe anonymous tag. 9048331065SMasatake YAMATO 9148331065SMasatake YAMATOLet's see an example demonstrating the effect of the extra. 9248331065SMasatake YAMATO 9348331065SMasatake YAMATOTurning off the extra: 9448331065SMasatake YAMATO 9548331065SMasatake YAMATO"input.gd" 9648331065SMasatake YAMATO 9748331065SMasatake YAMATO.. code-block:: GDScript 9848331065SMasatake YAMATO 9948331065SMasatake YAMATO func f(x): 10048331065SMasatake YAMATO return x 10148331065SMasatake YAMATO 10248331065SMasatake YAMATO"output.tags" 10348331065SMasatake YAMATOwith "--options=NONE --fields=+KZ --extras-GDScript=-{implicitClass} -o - input.gd" 10448331065SMasatake YAMATO 10548331065SMasatake YAMATO.. code-block:: tags 10648331065SMasatake YAMATO 10748331065SMasatake YAMATO f input.gd /^func f(x):$/;" method 10848331065SMasatake YAMATO 10948331065SMasatake YAMATOTurning on the extra: 11048331065SMasatake YAMATO 11148331065SMasatake YAMATO"input.gd" 11248331065SMasatake YAMATO 11348331065SMasatake YAMATO.. code-block:: GDScript 11448331065SMasatake YAMATO 11548331065SMasatake YAMATO func g(x): 11648331065SMasatake YAMATO return x 11748331065SMasatake YAMATO 11848331065SMasatake YAMATO"output.tags" 11948331065SMasatake YAMATOwith "--options=NONE --fields=+KZ --extras-GDScript=+{implicitClass} -o - input.gd" 12048331065SMasatake YAMATO 12148331065SMasatake YAMATO.. code-block:: tags 12248331065SMasatake YAMATO 12348331065SMasatake YAMATO anon_class_84011bee0100 input.gd /^func g(x):$/;" class 12448331065SMasatake YAMATO g input.gd /^func g(x):$/;" method scope:class:anon_class_84011bee0100 12548331065SMasatake YAMATO 12648331065SMasatake YAMATOTagging the name specified with `class_name` 12748331065SMasatake YAMATO--------------------------------------------- 12848331065SMasatake YAMATO`class_name` is a keyword for giving a name to the implicitly defined 12948331065SMasatake YAMATOclass. If ``implicitClass`` is turned off, the parser just extract 13048331065SMasatake YAMATOthe name coming after the keyword with ``class`` kind. If 13148331065SMasatake YAMATO``implicitClass`` is turned on, the parser converts the anonymous tag 13248331065SMasatake YAMATOto a non-anonymous tag with the specified name. When converting, 13348331065SMasatake YAMATOthe parser also updates scope fields of the other tags in the file. 13448331065SMasatake YAMATO 13548331065SMasatake YAMATOTurning off the extra: 13648331065SMasatake YAMATO 13748331065SMasatake YAMATO"input.gd" 13848331065SMasatake YAMATO 13948331065SMasatake YAMATO.. code-block:: GDScript 14048331065SMasatake YAMATO 14148331065SMasatake YAMATO class_name c 14248331065SMasatake YAMATO 14348331065SMasatake YAMATO func f(x): 14448331065SMasatake YAMATO return x 14548331065SMasatake YAMATO 14648331065SMasatake YAMATO"output.tags" 14748331065SMasatake YAMATOwith "--options=NONE --fields=+KZ --extras-GDScript=-{implicitClass} -o - input.gd" 14848331065SMasatake YAMATO 14948331065SMasatake YAMATO.. code-block:: tags 15048331065SMasatake YAMATO 15148331065SMasatake YAMATO c input.gd /^class_name c$/;" class 15248331065SMasatake YAMATO f input.gd /^func f(x):$/;" method 15348331065SMasatake YAMATO 15448331065SMasatake YAMATOTurning on the extra: 15548331065SMasatake YAMATO 15648331065SMasatake YAMATO"input.gd" 15748331065SMasatake YAMATO 15848331065SMasatake YAMATO.. code-block:: GDScript 15948331065SMasatake YAMATO 16048331065SMasatake YAMATO class_name C 16148331065SMasatake YAMATO func g(x): 16248331065SMasatake YAMATO return x 16348331065SMasatake YAMATO 16448331065SMasatake YAMATO"output.tags" 16548331065SMasatake YAMATOwith "--options=NONE --fields=+KZ --extras-GDScript=+{implicitClass} -o - input.gd" 16648331065SMasatake YAMATO 16748331065SMasatake YAMATO.. code-block:: tags 16848331065SMasatake YAMATO 16948331065SMasatake YAMATO C input.gd /^class_name C$/;" class 17048331065SMasatake YAMATO g input.gd /^func g(x):$/;" method scope:class:C 17148331065SMasatake YAMATO 17248331065SMasatake YAMATOFilling ``inherits`` field 17348331065SMasatake YAMATO-------------------------- 17448331065SMasatake YAMATO`extends` keyword specifies the super class for the implicitly defined class. 17548331065SMasatake YAMATOIf `implicitClass` extra is turned on, the parser fills ``inherits`` field 17648331065SMasatake YAMATOof the tag for the implicitly defined class with the name of super class. 17748331065SMasatake YAMATO 17848331065SMasatake YAMATO"input.gd" 17948331065SMasatake YAMATO 18048331065SMasatake YAMATO.. code-block:: GDScript 18148331065SMasatake YAMATO 18248331065SMasatake YAMATO extends B 18348331065SMasatake YAMATO class_name C 18448331065SMasatake YAMATO 18548331065SMasatake YAMATO"output.tags" 18648331065SMasatake YAMATOwith "--options=NONE --fields=+Ki --extras-GDScript=+{implicitClass} -o - input.gd" 18748331065SMasatake YAMATO 18848331065SMasatake YAMATO.. code-block:: tags 18948331065SMasatake YAMATO 19048331065SMasatake YAMATO C input.gd /^class_name C$/;" class inherits:B 19148331065SMasatake YAMATO 192*d0c09249SMasatake YAMATOWhen `--extras=+r` is given, the parser extracts the class specified with the 193*d0c09249SMasatake YAMATO`extends` keyword as a referece tag of ``class`` kind with ``extended`` role. 194*d0c09249SMasatake YAMATO 195*d0c09249SMasatake YAMATO"input.gd" 196*d0c09249SMasatake YAMATO 197*d0c09249SMasatake YAMATO.. code-block:: GDScript 198*d0c09249SMasatake YAMATO 199*d0c09249SMasatake YAMATO extends B 200*d0c09249SMasatake YAMATO 201*d0c09249SMasatake YAMATO"output.tags" 202*d0c09249SMasatake YAMATOwith "--options=NONE --fields=+rEK --extras=+r -o - input.gd" 203*d0c09249SMasatake YAMATO 204*d0c09249SMasatake YAMATO.. code-block:: tags 205*d0c09249SMasatake YAMATO 206*d0c09249SMasatake YAMATO B input.gd /^extends B$/;" class roles:extended extras:reference 207*d0c09249SMasatake YAMATO 20848331065SMasatake YAMATOSEE ALSO 20948331065SMasatake YAMATO-------- 21048331065SMasatake YAMATOctags(1) 211