class.gd 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. extends Node
  2. class Inner1 extends Node:
  3. # ^^^^^^ class1 -> class1
  4. var member1 := 42
  5. # ^^^^^^^ class1:member1 -> class1:member1
  6. var member2 : int = 13
  7. # ^^^^^^^ class1:member2 -> class1:member2
  8. var member3 = 1337
  9. # ^^^^^^^ class1:member3 -> class1:member3
  10. signal changed(old, new)
  11. # ^^^^^^^ class1:signal -> class1:signal
  12. func my_func(arg1: int, arg2: String, arg3):
  13. # | | | | | | ^^^^ class1:func:arg3 -> class1:func:arg3
  14. # | | | | ^^^^ class1:func:arg2 -> class1:func:arg2
  15. # | | ^^^^ class1:func:arg1 -> class1:func:arg1
  16. # ^^^^^^^ class1:func -> class1:func
  17. print(arg1, arg2, arg3)
  18. # | | | | ^^^^ -> class1:func:arg3
  19. # | | ^^^^ -> class1:func:arg2
  20. # ^^^^ -> class1:func:arg1
  21. changed.emit(arg1, arg3)
  22. # | | | ^^^^ -> class1:func:arg3
  23. # | ^^^^ -> class1:func:arg1
  24. #<^^^^^ -> class1:signal
  25. return arg1 + arg2.length() + arg3
  26. # | | | | ^^^^ -> class1:func:arg3
  27. # | | ^^^^ -> class1:func:arg2
  28. # ^^^^ -> class1:func:arg1
  29. class Inner2:
  30. # ^^^^^^ class2 -> class2
  31. var member1 := 42
  32. # ^^^^^^^ class2:member1 -> class2:member1
  33. var member2 : int = 13
  34. # ^^^^^^^ class2:member2 -> class2:member2
  35. var member3 = 1337
  36. # ^^^^^^^ class2:member3 -> class2:member3
  37. signal changed(old, new)
  38. # ^^^^^^^ class2:signal -> class2:signal
  39. func my_func(arg1: int, arg2: String, arg3):
  40. # | | | | | | ^^^^ class2:func:arg3 -> class2:func:arg3
  41. # | | | | ^^^^ class2:func:arg2 -> class2:func:arg2
  42. # | | ^^^^ class2:func:arg1 -> class2:func:arg1
  43. # ^^^^^^^ class2:func -> class2:func
  44. print(arg1, arg2, arg3)
  45. # | | | | ^^^^ -> class2:func:arg3
  46. # | | ^^^^ -> class2:func:arg2
  47. # ^^^^ -> class2:func:arg1
  48. changed.emit(arg1, arg3)
  49. # | | | ^^^^ -> class2:func:arg3
  50. # | ^^^^ -> class2:func:arg1
  51. #<^^^^^ -> class2:signal
  52. return arg1 + arg2.length() + arg3
  53. # | | | | ^^^^ -> class2:func:arg3
  54. # | | ^^^^ -> class2:func:arg2
  55. # ^^^^ -> class2:func:arg1
  56. class Inner3 extends Inner2:
  57. # | | ^^^^^^ -> class2
  58. # ^^^^^^ class3 -> class3
  59. var whatever = "foo"
  60. # ^^^^^^^^ class3:whatever -> class3:whatever
  61. func _init():
  62. # ^^^^^ class3:init
  63. # Note: no self-ref check here: resolves to `Object._init`.
  64. # usages of `Inner3.new()` DO resolve to this `_init`
  65. pass
  66. class NestedInInner3:
  67. # ^^^^^^^^^^^^^^ class3:nested1 -> class3:nested1
  68. var some_value := 42
  69. # ^^^^^^^^^^ class3:nested1:some_value -> class3:nested1:some_value
  70. class AnotherNestedInInner3 extends NestedInInner3:
  71. #! | | ^^^^^^^^^^^^^^ -> class3:nested1
  72. # ^^^^^^^^^^^^^^^^^^^^^ class3:nested2 -> class3:nested2
  73. var another_value := 13
  74. # ^^^^^^^^^^^^^ class3:nested2:another_value -> class3:nested2:another_value
  75. func _ready():
  76. var inner1 = Inner1.new()
  77. # | | ^^^^^^ -> class1
  78. # ^^^^^^ func:class1 -> func:class1
  79. var value1 = inner1.my_func(1,"",3)
  80. # | | | | ^^^^^^^ -> class1:func
  81. # | | ^^^^^^ -> func:class1
  82. # ^^^^^^ func:class1:value1 -> func:class1:value1
  83. var value2 = inner1.member3
  84. # | | | | ^^^^^^^ -> class1:member3
  85. # | | ^^^^^^ -> func:class1
  86. # ^^^^^^ func:class1:value2 -> func:class1:value2
  87. print(value1, value2)
  88. # | | ^^^^^^ -> func:class1:value2
  89. # ^^^^^^ -> func:class1:value1
  90. var inner3 = Inner3.new()
  91. # | | | | ^^^ -> class3:init
  92. # | | ^^^^^^ -> class3
  93. # ^^^^^^ func:class3 -> func:class3
  94. print(inner3)
  95. # ^^^^^^ -> func:class3
  96. var nested1 = Inner3.NestedInInner3.new()
  97. # | | | | ^^^^^^^^^^^^^^ -> class3:nested1
  98. # | | ^^^^^^ -> class3
  99. # ^^^^^^^ func:class3:nested1 -> func:class3:nested1
  100. var value_nested1 = nested1.some_value
  101. # | | | | ^^^^^^^^^^ -> class3:nested1:some_value
  102. # | | ^^^^^^^ -> func:class3:nested1
  103. # ^^^^^^^^^^^^^ func:class3:nested1:value
  104. print(value_nested1)
  105. # ^^^^^^^^^^^^^ -> func:class3:nested1:value
  106. var nested2 = Inner3.AnotherNestedInInner3.new()
  107. # | | | | ^^^^^^^^^^^^^^^^^^^^^ -> class3:nested2
  108. # | | ^^^^^^ -> class3
  109. # ^^^^^^^ func:class3:nested2 -> func:class3:nested2
  110. var value_nested2 = nested2.some_value
  111. # | | | | ^^^^^^^^^^ -> class3:nested1:some_value
  112. # | | ^^^^^^^ -> func:class3:nested2
  113. # ^^^^^^^^^^^^^ func:class3:nested2:value
  114. var another_value_nested2 = nested2.another_value
  115. # | | | | ^^^^^^^^^^^^^ -> class3:nested2:another_value
  116. # | | ^^^^^^^ -> func:class3:nested2
  117. # ^^^^^^^^^^^^^^^^^^^^^ func:class3:nested2:another_value_nested
  118. print(value_nested2, another_value_nested2)
  119. # | | ^^^^^^^^^^^^^^^^^^^^^ -> func:class3:nested2:another_value_nested
  120. # ^^^^^^^^^^^^^ -> func:class3:nested2:value