chatmcp-cli 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. aider/__init__.py +20 -0
  2. aider/__main__.py +4 -0
  3. aider/_version.py +21 -0
  4. aider/analytics.py +250 -0
  5. aider/args.py +926 -0
  6. aider/args_formatter.py +228 -0
  7. aider/coders/__init__.py +34 -0
  8. aider/coders/architect_coder.py +48 -0
  9. aider/coders/architect_prompts.py +40 -0
  10. aider/coders/ask_coder.py +9 -0
  11. aider/coders/ask_prompts.py +35 -0
  12. aider/coders/base_coder.py +2483 -0
  13. aider/coders/base_prompts.py +60 -0
  14. aider/coders/chat_chunks.py +64 -0
  15. aider/coders/context_coder.py +53 -0
  16. aider/coders/context_prompts.py +75 -0
  17. aider/coders/editblock_coder.py +657 -0
  18. aider/coders/editblock_fenced_coder.py +10 -0
  19. aider/coders/editblock_fenced_prompts.py +143 -0
  20. aider/coders/editblock_func_coder.py +141 -0
  21. aider/coders/editblock_func_prompts.py +27 -0
  22. aider/coders/editblock_prompts.py +174 -0
  23. aider/coders/editor_diff_fenced_coder.py +9 -0
  24. aider/coders/editor_diff_fenced_prompts.py +11 -0
  25. aider/coders/editor_editblock_coder.py +8 -0
  26. aider/coders/editor_editblock_prompts.py +18 -0
  27. aider/coders/editor_whole_coder.py +8 -0
  28. aider/coders/editor_whole_prompts.py +10 -0
  29. aider/coders/help_coder.py +16 -0
  30. aider/coders/help_prompts.py +46 -0
  31. aider/coders/patch_coder.py +706 -0
  32. aider/coders/patch_prompts.py +161 -0
  33. aider/coders/search_replace.py +757 -0
  34. aider/coders/shell.py +37 -0
  35. aider/coders/single_wholefile_func_coder.py +102 -0
  36. aider/coders/single_wholefile_func_prompts.py +27 -0
  37. aider/coders/udiff_coder.py +429 -0
  38. aider/coders/udiff_prompts.py +115 -0
  39. aider/coders/udiff_simple.py +14 -0
  40. aider/coders/udiff_simple_prompts.py +25 -0
  41. aider/coders/wholefile_coder.py +144 -0
  42. aider/coders/wholefile_func_coder.py +134 -0
  43. aider/coders/wholefile_func_prompts.py +27 -0
  44. aider/coders/wholefile_prompts.py +67 -0
  45. aider/commands.py +1665 -0
  46. aider/copypaste.py +72 -0
  47. aider/deprecated.py +126 -0
  48. aider/diffs.py +128 -0
  49. aider/dump.py +29 -0
  50. aider/editor.py +147 -0
  51. aider/exceptions.py +107 -0
  52. aider/format_settings.py +26 -0
  53. aider/gui.py +545 -0
  54. aider/help.py +163 -0
  55. aider/help_pats.py +19 -0
  56. aider/history.py +143 -0
  57. aider/io.py +1175 -0
  58. aider/linter.py +304 -0
  59. aider/llm.py +47 -0
  60. aider/main.py +1267 -0
  61. aider/mdstream.py +243 -0
  62. aider/models.py +1286 -0
  63. aider/onboarding.py +428 -0
  64. aider/openrouter.py +128 -0
  65. aider/prompts.py +64 -0
  66. aider/queries/tree-sitter-language-pack/README.md +7 -0
  67. aider/queries/tree-sitter-language-pack/arduino-tags.scm +5 -0
  68. aider/queries/tree-sitter-language-pack/c-tags.scm +9 -0
  69. aider/queries/tree-sitter-language-pack/chatito-tags.scm +16 -0
  70. aider/queries/tree-sitter-language-pack/commonlisp-tags.scm +122 -0
  71. aider/queries/tree-sitter-language-pack/cpp-tags.scm +15 -0
  72. aider/queries/tree-sitter-language-pack/csharp-tags.scm +26 -0
  73. aider/queries/tree-sitter-language-pack/d-tags.scm +26 -0
  74. aider/queries/tree-sitter-language-pack/dart-tags.scm +92 -0
  75. aider/queries/tree-sitter-language-pack/elisp-tags.scm +5 -0
  76. aider/queries/tree-sitter-language-pack/elixir-tags.scm +54 -0
  77. aider/queries/tree-sitter-language-pack/elm-tags.scm +19 -0
  78. aider/queries/tree-sitter-language-pack/gleam-tags.scm +41 -0
  79. aider/queries/tree-sitter-language-pack/go-tags.scm +42 -0
  80. aider/queries/tree-sitter-language-pack/java-tags.scm +20 -0
  81. aider/queries/tree-sitter-language-pack/javascript-tags.scm +88 -0
  82. aider/queries/tree-sitter-language-pack/lua-tags.scm +34 -0
  83. aider/queries/tree-sitter-language-pack/ocaml-tags.scm +115 -0
  84. aider/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +98 -0
  85. aider/queries/tree-sitter-language-pack/pony-tags.scm +39 -0
  86. aider/queries/tree-sitter-language-pack/properties-tags.scm +5 -0
  87. aider/queries/tree-sitter-language-pack/python-tags.scm +14 -0
  88. aider/queries/tree-sitter-language-pack/r-tags.scm +21 -0
  89. aider/queries/tree-sitter-language-pack/racket-tags.scm +12 -0
  90. aider/queries/tree-sitter-language-pack/ruby-tags.scm +64 -0
  91. aider/queries/tree-sitter-language-pack/rust-tags.scm +60 -0
  92. aider/queries/tree-sitter-language-pack/solidity-tags.scm +43 -0
  93. aider/queries/tree-sitter-language-pack/swift-tags.scm +51 -0
  94. aider/queries/tree-sitter-language-pack/udev-tags.scm +20 -0
  95. aider/queries/tree-sitter-languages/README.md +23 -0
  96. aider/queries/tree-sitter-languages/c-tags.scm +9 -0
  97. aider/queries/tree-sitter-languages/c_sharp-tags.scm +46 -0
  98. aider/queries/tree-sitter-languages/cpp-tags.scm +15 -0
  99. aider/queries/tree-sitter-languages/dart-tags.scm +91 -0
  100. aider/queries/tree-sitter-languages/elisp-tags.scm +8 -0
  101. aider/queries/tree-sitter-languages/elixir-tags.scm +54 -0
  102. aider/queries/tree-sitter-languages/elm-tags.scm +19 -0
  103. aider/queries/tree-sitter-languages/go-tags.scm +30 -0
  104. aider/queries/tree-sitter-languages/hcl-tags.scm +77 -0
  105. aider/queries/tree-sitter-languages/java-tags.scm +20 -0
  106. aider/queries/tree-sitter-languages/javascript-tags.scm +88 -0
  107. aider/queries/tree-sitter-languages/kotlin-tags.scm +27 -0
  108. aider/queries/tree-sitter-languages/ocaml-tags.scm +115 -0
  109. aider/queries/tree-sitter-languages/ocaml_interface-tags.scm +98 -0
  110. aider/queries/tree-sitter-languages/php-tags.scm +26 -0
  111. aider/queries/tree-sitter-languages/python-tags.scm +12 -0
  112. aider/queries/tree-sitter-languages/ql-tags.scm +26 -0
  113. aider/queries/tree-sitter-languages/ruby-tags.scm +64 -0
  114. aider/queries/tree-sitter-languages/rust-tags.scm +60 -0
  115. aider/queries/tree-sitter-languages/scala-tags.scm +65 -0
  116. aider/queries/tree-sitter-languages/typescript-tags.scm +41 -0
  117. aider/reasoning_tags.py +82 -0
  118. aider/repo.py +623 -0
  119. aider/repomap.py +847 -0
  120. aider/report.py +200 -0
  121. aider/resources/__init__.py +3 -0
  122. aider/resources/model-metadata.json +468 -0
  123. aider/resources/model-settings.yml +1767 -0
  124. aider/run_cmd.py +132 -0
  125. aider/scrape.py +284 -0
  126. aider/sendchat.py +61 -0
  127. aider/special.py +203 -0
  128. aider/urls.py +17 -0
  129. aider/utils.py +338 -0
  130. aider/versioncheck.py +113 -0
  131. aider/voice.py +187 -0
  132. aider/waiting.py +221 -0
  133. aider/watch.py +318 -0
  134. aider/watch_prompts.py +12 -0
  135. aider/website/Gemfile +8 -0
  136. aider/website/_includes/blame.md +162 -0
  137. aider/website/_includes/get-started.md +22 -0
  138. aider/website/_includes/help-tip.md +5 -0
  139. aider/website/_includes/help.md +24 -0
  140. aider/website/_includes/install.md +5 -0
  141. aider/website/_includes/keys.md +4 -0
  142. aider/website/_includes/model-warnings.md +67 -0
  143. aider/website/_includes/multi-line.md +22 -0
  144. aider/website/_includes/python-m-aider.md +5 -0
  145. aider/website/_includes/recording.css +228 -0
  146. aider/website/_includes/recording.md +34 -0
  147. aider/website/_includes/replit-pipx.md +9 -0
  148. aider/website/_includes/works-best.md +1 -0
  149. aider/website/_sass/custom/custom.scss +103 -0
  150. aider/website/docs/config/adv-model-settings.md +1881 -0
  151. aider/website/docs/config/aider_conf.md +527 -0
  152. aider/website/docs/config/api-keys.md +90 -0
  153. aider/website/docs/config/dotenv.md +478 -0
  154. aider/website/docs/config/editor.md +127 -0
  155. aider/website/docs/config/model-aliases.md +103 -0
  156. aider/website/docs/config/options.md +843 -0
  157. aider/website/docs/config/reasoning.md +209 -0
  158. aider/website/docs/config.md +44 -0
  159. aider/website/docs/faq.md +378 -0
  160. aider/website/docs/git.md +76 -0
  161. aider/website/docs/index.md +47 -0
  162. aider/website/docs/install/codespaces.md +39 -0
  163. aider/website/docs/install/docker.md +57 -0
  164. aider/website/docs/install/optional.md +100 -0
  165. aider/website/docs/install/replit.md +8 -0
  166. aider/website/docs/install.md +115 -0
  167. aider/website/docs/languages.md +264 -0
  168. aider/website/docs/legal/contributor-agreement.md +111 -0
  169. aider/website/docs/legal/privacy.md +104 -0
  170. aider/website/docs/llms/anthropic.md +77 -0
  171. aider/website/docs/llms/azure.md +48 -0
  172. aider/website/docs/llms/bedrock.md +132 -0
  173. aider/website/docs/llms/cohere.md +34 -0
  174. aider/website/docs/llms/deepseek.md +32 -0
  175. aider/website/docs/llms/gemini.md +49 -0
  176. aider/website/docs/llms/github.md +105 -0
  177. aider/website/docs/llms/groq.md +36 -0
  178. aider/website/docs/llms/lm-studio.md +39 -0
  179. aider/website/docs/llms/ollama.md +75 -0
  180. aider/website/docs/llms/openai-compat.md +39 -0
  181. aider/website/docs/llms/openai.md +58 -0
  182. aider/website/docs/llms/openrouter.md +78 -0
  183. aider/website/docs/llms/other.md +103 -0
  184. aider/website/docs/llms/vertex.md +50 -0
  185. aider/website/docs/llms/warnings.md +10 -0
  186. aider/website/docs/llms/xai.md +53 -0
  187. aider/website/docs/llms.md +54 -0
  188. aider/website/docs/more/analytics.md +122 -0
  189. aider/website/docs/more/edit-formats.md +116 -0
  190. aider/website/docs/more/infinite-output.md +137 -0
  191. aider/website/docs/more-info.md +8 -0
  192. aider/website/docs/recordings/auto-accept-architect.md +31 -0
  193. aider/website/docs/recordings/dont-drop-original-read-files.md +35 -0
  194. aider/website/docs/recordings/index.md +21 -0
  195. aider/website/docs/recordings/model-accepts-settings.md +69 -0
  196. aider/website/docs/recordings/tree-sitter-language-pack.md +80 -0
  197. aider/website/docs/repomap.md +112 -0
  198. aider/website/docs/scripting.md +100 -0
  199. aider/website/docs/troubleshooting/aider-not-found.md +24 -0
  200. aider/website/docs/troubleshooting/edit-errors.md +76 -0
  201. aider/website/docs/troubleshooting/imports.md +62 -0
  202. aider/website/docs/troubleshooting/models-and-keys.md +54 -0
  203. aider/website/docs/troubleshooting/support.md +79 -0
  204. aider/website/docs/troubleshooting/token-limits.md +96 -0
  205. aider/website/docs/troubleshooting/warnings.md +12 -0
  206. aider/website/docs/troubleshooting.md +11 -0
  207. aider/website/docs/usage/browser.md +57 -0
  208. aider/website/docs/usage/caching.md +49 -0
  209. aider/website/docs/usage/commands.md +132 -0
  210. aider/website/docs/usage/conventions.md +119 -0
  211. aider/website/docs/usage/copypaste.md +121 -0
  212. aider/website/docs/usage/images-urls.md +48 -0
  213. aider/website/docs/usage/lint-test.md +118 -0
  214. aider/website/docs/usage/modes.md +211 -0
  215. aider/website/docs/usage/not-code.md +179 -0
  216. aider/website/docs/usage/notifications.md +87 -0
  217. aider/website/docs/usage/tips.md +79 -0
  218. aider/website/docs/usage/tutorials.md +30 -0
  219. aider/website/docs/usage/voice.md +121 -0
  220. aider/website/docs/usage/watch.md +294 -0
  221. aider/website/docs/usage.md +92 -0
  222. aider/website/share/index.md +101 -0
  223. chatmcp_cli-0.1.0.dist-info/METADATA +502 -0
  224. chatmcp_cli-0.1.0.dist-info/RECORD +228 -0
  225. chatmcp_cli-0.1.0.dist-info/WHEEL +5 -0
  226. chatmcp_cli-0.1.0.dist-info/entry_points.txt +3 -0
  227. chatmcp_cli-0.1.0.dist-info/licenses/LICENSE.txt +202 -0
  228. chatmcp_cli-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,122 @@
1
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
+ ;;; Function Definitions ;;;;;;;;;;;;;;;;;;;;;;;
3
+
4
+ (defun_header
5
+ function_name: (sym_lit) @name.definition.function) @definition.function
6
+
7
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8
+ ;;; Function Calls ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
9
+ ;;;
10
+ ;;; Basically, we consider every list literal with symbol as the
11
+ ;;; first element to be a call to a function named by that element.
12
+ ;;; But we must exclude some cases. Note, tree-sitter @ignore
13
+ ;;; cases only work if they are declared before the cases
14
+ ;;; we want to include.
15
+
16
+ ;; Exclude lambda lists for function definitions
17
+ ;; For example:
18
+ ;;
19
+ ;; (defun my-func (arg1 arg2) ...)
20
+ ;;
21
+ ;; do not treat (arg1 arg2) as a call of function arg1
22
+ ;;
23
+ (defun_header
24
+ lambda_list: (list_lit . [(sym_lit) (package_lit)] @ignore))
25
+
26
+ ;; Similar to the above, but for
27
+ ;;
28
+ ;; (defmethod m ((type1 param1) (type2 param2)) ...)
29
+ ;;
30
+ ;; where list literals having symbol as their first element
31
+ ;; are nested inside the lambda list.
32
+ (defun_header
33
+ lambda_list: (list_lit (list_lit . [(sym_lit) (package_lit)] @ignore)))
34
+
35
+ ;;
36
+ ;; (let ((var ...) (var2 ...)) ...)
37
+ ;;
38
+ ;; - exclude var, var2
39
+ ;; - the same for let*, flet, labels, macrolet, symbol-macrolet
40
+ (list_lit . [(sym_lit) (package_lit)] @name.reference.call
41
+ . (list_lit (list_lit . [(sym_lit) (package_lit)] @ignore))
42
+ (#match? @name.reference.call
43
+ "(?i)^(cl:)?(let|let\\*|flet|labels|macrolet|symbol-macrolet)$")
44
+ )
45
+
46
+ ;; TODO:
47
+ ;; - exclude also:
48
+ ;; - (defclass name (parent parent2)
49
+ ;; ((slot1 ...)
50
+ ;; (slot2 ...))
51
+ ;; exclude the parent, slot1, slot2
52
+ ;; - (flet ((func-1 (param1 param2))) ...)
53
+ ;; - we already exclude func-1, but param1 is still recognized
54
+ ;; as a function call - exclude it too
55
+ ;; - the same for labels
56
+ ;; - the same macrolet
57
+ ;; - what else?
58
+ ;; (that's a non-goal to completely support all macros
59
+ ;; and special operators, but every one we support
60
+ ;; makes the solution a little bit better)
61
+ ;; - (flet ((func-1 (param1 param2))) ...)
62
+ ;; - instead of simply excluding it, as we do today,
63
+ ;; tag func-1 as @local.definition.function (I suppose)
64
+ ;; - the same for labels, macrolet
65
+ ;; - @local.scope for let, let*, flet, labels, macrolet
66
+ ;; - I guess the whole span of the scope text,
67
+ ;; till the closing paren, should be tagged as @local.scope;
68
+ ;; Hopefully, combined with @local.definition.function
69
+ ;; within the scope, the usual @reference.call within
70
+ ;; that scope will refer to the local definition,
71
+ ;; and there will be no need to use @local.reference.call
72
+ ;; (which is more difficult to implement).
73
+ ;; - When implementing, remember the scope rules differences
74
+ ;; of let vs let*, flet vs labels.
75
+
76
+
77
+ ;; Include all other cases - list literal with symbol as the
78
+ ;; first element
79
+ (list_lit . [(sym_lit) (package_lit)] @name.reference.call) @reference.call
80
+
81
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
82
+ ;;; classes
83
+
84
+ (list_lit . [(sym_lit) (package_lit)] @ignore
85
+ . [(sym_lit) (package_lit)] @name.definition.class
86
+ (#match? @ignore "(?i)^(cl:)?defclass$")
87
+ ) @definition.class
88
+
89
+ (list_lit . [(sym_lit) (package_lit)] @ignore
90
+ . (quoting_lit [(sym_lit) (package_lit)] @name.reference.class)
91
+ (#match? @ignore "(?i)^(cl:)?make-instance$")
92
+ ) @reference.class
93
+
94
+ ;;; TODO:
95
+ ;; - @reference.class for base classes
96
+
97
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
98
+ ;;; TODO:
99
+ ;; - Symbols referenced in defpackage
100
+ ;;
101
+ ;; (defpackage ...
102
+ ;; (:export (symbol-a :symbol-b #:symbol-c "SYMBOL-D")))
103
+ ;;
104
+ ;; The goal is to allow quick navigation from the API
105
+ ;; overview in the form of defpackage, to the definition
106
+ ;; where user can read parameters, docstring, etc.
107
+ ;; - The @name must not include the colon, or sharpsign colon, quotes,
108
+ ;; just symbol-a, symbol-b, symbol-c, sybmol-d
109
+ ;; - Downcase the names specified as string literals?
110
+ ;; ("SYMBOL-D" -> symbol-d)
111
+ ;; - We don't know if the exported symbol is a function, variable,
112
+ ;; class or something else. The official doc
113
+ ;; (https://tree-sitter.github.io/tree-sitter/code-navigation-systems)
114
+ ;; does not even suggest a tag for variable reference.
115
+ ;; (Although in practice, the `tree-sitter tags` command
116
+ ;; allows any @reference.* and @definition.* tags)
117
+ ;; Probably it's better to just use @reference.call for all
118
+ ;; the symbols in the :export clause.
119
+ ;;
120
+ ;; - The same for the export function call:
121
+ ;;
122
+ ;; (export '(symbol-a :symbol-b #:symbol-c "SYMBOL-D"))
@@ -0,0 +1,15 @@
1
+ (struct_specifier name: (type_identifier) @name.definition.class body:(_)) @definition.class
2
+
3
+ (declaration type: (union_specifier name: (type_identifier) @name.definition.class)) @definition.class
4
+
5
+ (function_declarator declarator: (identifier) @name.definition.function) @definition.function
6
+
7
+ (function_declarator declarator: (field_identifier) @name.definition.function) @definition.function
8
+
9
+ (function_declarator declarator: (qualified_identifier scope: (namespace_identifier) @local.scope name: (identifier) @name.definition.method)) @definition.method
10
+
11
+ (type_definition declarator: (type_identifier) @name.definition.type) @definition.type
12
+
13
+ (enum_specifier name: (type_identifier) @name.definition.type) @definition.type
14
+
15
+ (class_specifier name: (type_identifier) @name.definition.class) @definition.class
@@ -0,0 +1,26 @@
1
+ ; Based on https://github.com/tree-sitter/tree-sitter-c-sharp/blob/master/queries/tags.scm
2
+ ; MIT License.
3
+
4
+ (class_declaration name: (identifier) @name.definition.class) @definition.class
5
+
6
+ (class_declaration (base_list (_) @name.reference.class)) @reference.class
7
+
8
+ (interface_declaration name: (identifier) @name.definition.interface) @definition.interface
9
+
10
+ (interface_declaration (base_list (_) @name.reference.interface)) @reference.interface
11
+
12
+ (method_declaration name: (identifier) @name.definition.method) @definition.method
13
+
14
+ (object_creation_expression type: (identifier) @name.reference.class) @reference.class
15
+
16
+ (type_parameter_constraints_clause (identifier) @name.reference.class) @reference.class
17
+
18
+ (type_parameter_constraint (type type: (identifier) @name.reference.class)) @reference.class
19
+
20
+ (variable_declaration type: (identifier) @name.reference.class) @reference.class
21
+
22
+ (invocation_expression function: (member_access_expression name: (identifier) @name.reference.send)) @reference.send
23
+
24
+ (namespace_declaration name: (identifier) @name.definition.module) @definition.module
25
+
26
+ (namespace_declaration name: (identifier) @name.definition.module) @module
@@ -0,0 +1,26 @@
1
+ (module_def (module_declaration (module_fqn) @name.definition.module)) @definition.module
2
+
3
+ (struct_declaration (struct) . (identifier) @name.definition.class) @definition.class
4
+ (interface_declaration (interface) . (identifier) @name.definition.interface) @definition.interface
5
+ (enum_declaration (enum) . (identifier) @name.definition.type) @definition.type
6
+
7
+ (class_declaration (class) . (identifier) @name.definition.class) @definition.class
8
+ (constructor (this) @name.definition.method) @definition.method
9
+ (destructor (this) @name.definition.method) @definition.method
10
+ (postblit (this) @name.definition.method) @definition.method
11
+
12
+ (manifest_declarator . (identifier) @name.definition.type) @definition.type
13
+
14
+ (function_declaration (identifier) @name.definition.function) @definition.function
15
+
16
+ (union_declaration (union) . (identifier) @name.definition.type) @definition.type
17
+
18
+ (anonymous_enum_declaration (enum_member . (identifier) @name.definition.constant)) @definition.constant
19
+
20
+ (enum_declaration (enum_member . (identifier) @name.definition.constant)) @definition.constant
21
+
22
+ (call_expression (identifier) @name.reference.call) @reference.call
23
+ (call_expression (type (template_instance (identifier) @name.reference.call))) @reference.call
24
+ (parameter (type (identifier) @name.reference.class) @reference.class (identifier))
25
+
26
+ (variable_declaration (type (identifier) @name.reference.class) @reference.class (declarator))
@@ -0,0 +1,92 @@
1
+
2
+ (class_definition
3
+ name: (identifier) @name.definition.class) @definition.class
4
+
5
+ (method_signature
6
+ (function_signature)) @definition.method
7
+
8
+ (type_alias
9
+ (type_identifier) @name.definition.type) @definition.type
10
+
11
+ (method_signature
12
+ (getter_signature
13
+ name: (identifier) @name.definition.method)) @definition.method
14
+
15
+ (method_signature
16
+ (setter_signature
17
+ name: (identifier) @name.definition.method)) @definition.method
18
+
19
+ (method_signature
20
+ (function_signature
21
+ name: (identifier) @name.definition.method)) @definition.method
22
+
23
+ (method_signature
24
+ (factory_constructor_signature
25
+ (identifier) @name.definition.method)) @definition.method
26
+
27
+ (method_signature
28
+ (constructor_signature
29
+ name: (identifier) @name.definition.method)) @definition.method
30
+
31
+ (method_signature
32
+ (operator_signature)) @definition.method
33
+
34
+ (method_signature) @definition.method
35
+
36
+ (mixin_declaration
37
+ (mixin)
38
+ (identifier) @name.definition.mixin) @definition.mixin
39
+
40
+ (extension_declaration
41
+ name: (identifier) @name.definition.extension) @definition.extension
42
+
43
+
44
+ (new_expression
45
+ (type_identifier) @name.reference.class) @reference.class
46
+
47
+ (enum_declaration
48
+ name: (identifier) @name.definition.enum) @definition.enum
49
+
50
+ (function_signature
51
+ name: (identifier) @name.definition.function) @definition.function
52
+
53
+ (initialized_variable_definition
54
+ name: (identifier)
55
+ value: (identifier) @name.reference.class
56
+ value: (selector
57
+ "!"?
58
+ (argument_part
59
+ (arguments
60
+ (argument)*))?)?) @reference.class
61
+
62
+ (assignment_expression
63
+ left: (assignable_expression
64
+ (identifier)
65
+ (unconditional_assignable_selector
66
+ "."
67
+ (identifier) @name.reference.send))) @reference.call
68
+
69
+ (assignment_expression
70
+ left: (assignable_expression
71
+ (identifier)
72
+ (conditional_assignable_selector
73
+ "?."
74
+ (identifier) @name.reference.send))) @reference.call
75
+
76
+ ((identifier) @name.reference.send
77
+ (selector
78
+ "!"?
79
+ (conditional_assignable_selector
80
+ "?." (identifier) @name.reference.send)?
81
+ (unconditional_assignable_selector
82
+ "."? (identifier) @name.reference.send)?
83
+ (argument_part
84
+ (arguments
85
+ (argument)*))?)*
86
+ (cascade_section
87
+ (cascade_selector
88
+ (identifier)) @name.reference.send
89
+ (argument_part
90
+ (arguments
91
+ (argument)*))?)?) @reference.call
92
+
@@ -0,0 +1,5 @@
1
+ ;; defun/defsubst
2
+ (function_definition name: (symbol) @name.definition.function) @definition.function
3
+
4
+ ;; Treat macros as function definitions for the sake of TAGS.
5
+ (macro_definition name: (symbol) @name.definition.function) @definition.function
@@ -0,0 +1,54 @@
1
+ ; Definitions
2
+
3
+ ; * modules and protocols
4
+ (call
5
+ target: (identifier) @ignore
6
+ (arguments (alias) @name.definition.module)
7
+ (#any-of? @ignore "defmodule" "defprotocol")) @definition.module
8
+
9
+ ; * functions/macros
10
+ (call
11
+ target: (identifier) @ignore
12
+ (arguments
13
+ [
14
+ ; zero-arity functions with no parentheses
15
+ (identifier) @name.definition.function
16
+ ; regular function clause
17
+ (call target: (identifier) @name.definition.function)
18
+ ; function clause with a guard clause
19
+ (binary_operator
20
+ left: (call target: (identifier) @name.definition.function)
21
+ operator: "when")
22
+ ])
23
+ (#any-of? @ignore "def" "defp" "defdelegate" "defguard" "defguardp" "defmacro" "defmacrop" "defn" "defnp")) @definition.function
24
+
25
+ ; References
26
+
27
+ ; ignore calls to kernel/special-forms keywords
28
+ (call
29
+ target: (identifier) @ignore
30
+ (#any-of? @ignore "def" "defp" "defdelegate" "defguard" "defguardp" "defmacro" "defmacrop" "defn" "defnp" "defmodule" "defprotocol" "defimpl" "defstruct" "defexception" "defoverridable" "alias" "case" "cond" "else" "for" "if" "import" "quote" "raise" "receive" "require" "reraise" "super" "throw" "try" "unless" "unquote" "unquote_splicing" "use" "with"))
31
+
32
+ ; ignore module attributes
33
+ (unary_operator
34
+ operator: "@"
35
+ operand: (call
36
+ target: (identifier) @ignore))
37
+
38
+ ; * function call
39
+ (call
40
+ target: [
41
+ ; local
42
+ (identifier) @name.reference.call
43
+ ; remote
44
+ (dot
45
+ right: (identifier) @name.reference.call)
46
+ ]) @reference.call
47
+
48
+ ; * pipe into function call
49
+ (binary_operator
50
+ operator: "|>"
51
+ right: (identifier) @name.reference.call) @reference.call
52
+
53
+ ; * modules
54
+ (alias) @name.reference.module @reference.module
@@ -0,0 +1,19 @@
1
+ (value_declaration (function_declaration_left (lower_case_identifier) @name.definition.function)) @definition.function
2
+
3
+ (function_call_expr (value_expr (value_qid) @name.reference.function)) @reference.function
4
+ (exposed_value (lower_case_identifier) @name.reference.function) @reference.function
5
+ (type_annotation ((lower_case_identifier) @name.reference.function) (colon)) @reference.function
6
+
7
+ (type_declaration ((upper_case_identifier) @name.definition.type) ) @definition.type
8
+
9
+ (type_ref (upper_case_qid (upper_case_identifier) @name.reference.type)) @reference.type
10
+ (exposed_type (upper_case_identifier) @name.reference.type) @reference.type
11
+
12
+ (type_declaration (union_variant (upper_case_identifier) @name.definition.union)) @definition.union
13
+
14
+ (value_expr (upper_case_qid (upper_case_identifier) @name.reference.union)) @reference.union
15
+
16
+
17
+ (module_declaration
18
+ (upper_case_qid (upper_case_identifier)) @name.definition.module
19
+ ) @definition.module
@@ -0,0 +1,41 @@
1
+ ; Modules
2
+ (module) @name.reference.module @reference.module
3
+ (import alias: (identifier) @name.reference.module) @reference.module
4
+ (remote_type_identifier
5
+ module: (identifier) @name.reference.module) @reference.module
6
+ ((field_access
7
+ record: (identifier) @name.reference.module)
8
+ (#is-not? local)) @reference.module
9
+
10
+ ; Functions
11
+ (function
12
+ name: (identifier) @name.definition.function) @definition.function
13
+ (external_function
14
+ name: (identifier) @name.definition.function) @definition.function
15
+ (unqualified_import (identifier) @name.reference.function) @reference.function
16
+ ((function_call
17
+ function: (identifier) @name.reference.function) @reference.function
18
+ (#is-not? local))
19
+ ((field_access
20
+ record: (identifier) @ignore
21
+ field: (label) @name.reference.function)
22
+ (#is-not? local)) @reference.function
23
+ ((binary_expression
24
+ operator: "|>"
25
+ right: (identifier) @name.reference.function)
26
+ (#is-not? local)) @reference.function
27
+
28
+ ; Types
29
+ (type_definition
30
+ (type_name
31
+ name: (type_identifier) @name.definition.type)) @definition.type
32
+ (type_definition
33
+ (data_constructors
34
+ (data_constructor
35
+ name: (constructor_name) @name.definition.constructor))) @definition.constructor
36
+ (external_type
37
+ (type_name
38
+ name: (type_identifier) @name.definition.type)) @definition.type
39
+
40
+ (type_identifier) @name.reference.type @reference.type
41
+ (constructor_name) @name.reference.constructor @reference.constructor
@@ -0,0 +1,42 @@
1
+ (
2
+ (comment)* @doc
3
+ .
4
+ (function_declaration
5
+ name: (identifier) @name.definition.function) @definition.function
6
+ (#strip! @doc "^//\\s*")
7
+ (#set-adjacent! @doc @definition.function)
8
+ )
9
+
10
+ (
11
+ (comment)* @doc
12
+ .
13
+ (method_declaration
14
+ name: (field_identifier) @name.definition.method) @definition.method
15
+ (#strip! @doc "^//\\s*")
16
+ (#set-adjacent! @doc @definition.method)
17
+ )
18
+
19
+ (call_expression
20
+ function: [
21
+ (identifier) @name.reference.call
22
+ (parenthesized_expression (identifier) @name.reference.call)
23
+ (selector_expression field: (field_identifier) @name.reference.call)
24
+ (parenthesized_expression (selector_expression field: (field_identifier) @name.reference.call))
25
+ ]) @reference.call
26
+
27
+ (type_spec
28
+ name: (type_identifier) @name.definition.type) @definition.type
29
+
30
+ (type_identifier) @name.reference.type @reference.type
31
+
32
+ (package_clause "package" (package_identifier) @name.definition.module)
33
+
34
+ (type_declaration (type_spec name: (type_identifier) @name.definition.interface type: (interface_type)))
35
+
36
+ (type_declaration (type_spec name: (type_identifier) @name.definition.class type: (struct_type)))
37
+
38
+ (import_declaration (import_spec) @name.reference.module)
39
+
40
+ (var_declaration (var_spec name: (identifier) @name.definition.variable))
41
+
42
+ (const_declaration (const_spec name: (identifier) @name.definition.constant))
@@ -0,0 +1,20 @@
1
+ (class_declaration
2
+ name: (identifier) @name.definition.class) @definition.class
3
+
4
+ (method_declaration
5
+ name: (identifier) @name.definition.method) @definition.method
6
+
7
+ (method_invocation
8
+ name: (identifier) @name.reference.method
9
+ arguments: (argument_list) @reference.call)
10
+
11
+ (interface_declaration
12
+ name: (identifier) @name.definition.interface) @definition.interface
13
+
14
+ (type_list
15
+ (type_identifier) @name.reference.interface) @reference.implementation
16
+
17
+ (object_creation_expression
18
+ type: (type_identifier) @name.reference.class) @reference.class
19
+
20
+ (superclass (type_identifier) @name.reference.class) @reference.class
@@ -0,0 +1,88 @@
1
+ (
2
+ (comment)* @doc
3
+ .
4
+ (method_definition
5
+ name: (property_identifier) @name.definition.method) @definition.method
6
+ (#not-eq? @name.definition.method "constructor")
7
+ (#strip! @doc "^[\\s\\*/]+|^[\\s\\*/]$")
8
+ (#select-adjacent! @doc @definition.method)
9
+ )
10
+
11
+ (
12
+ (comment)* @doc
13
+ .
14
+ [
15
+ (class
16
+ name: (_) @name.definition.class)
17
+ (class_declaration
18
+ name: (_) @name.definition.class)
19
+ ] @definition.class
20
+ (#strip! @doc "^[\\s\\*/]+|^[\\s\\*/]$")
21
+ (#select-adjacent! @doc @definition.class)
22
+ )
23
+
24
+ (
25
+ (comment)* @doc
26
+ .
27
+ [
28
+ (function_expression
29
+ name: (identifier) @name.definition.function)
30
+ (function_declaration
31
+ name: (identifier) @name.definition.function)
32
+ (generator_function
33
+ name: (identifier) @name.definition.function)
34
+ (generator_function_declaration
35
+ name: (identifier) @name.definition.function)
36
+ ] @definition.function
37
+ (#strip! @doc "^[\\s\\*/]+|^[\\s\\*/]$")
38
+ (#select-adjacent! @doc @definition.function)
39
+ )
40
+
41
+ (
42
+ (comment)* @doc
43
+ .
44
+ (lexical_declaration
45
+ (variable_declarator
46
+ name: (identifier) @name.definition.function
47
+ value: [(arrow_function) (function_expression)]) @definition.function)
48
+ (#strip! @doc "^[\\s\\*/]+|^[\\s\\*/]$")
49
+ (#select-adjacent! @doc @definition.function)
50
+ )
51
+
52
+ (
53
+ (comment)* @doc
54
+ .
55
+ (variable_declaration
56
+ (variable_declarator
57
+ name: (identifier) @name.definition.function
58
+ value: [(arrow_function) (function_expression)]) @definition.function)
59
+ (#strip! @doc "^[\\s\\*/]+|^[\\s\\*/]$")
60
+ (#select-adjacent! @doc @definition.function)
61
+ )
62
+
63
+ (assignment_expression
64
+ left: [
65
+ (identifier) @name.definition.function
66
+ (member_expression
67
+ property: (property_identifier) @name.definition.function)
68
+ ]
69
+ right: [(arrow_function) (function_expression)]
70
+ ) @definition.function
71
+
72
+ (pair
73
+ key: (property_identifier) @name.definition.function
74
+ value: [(arrow_function) (function_expression)]) @definition.function
75
+
76
+ (
77
+ (call_expression
78
+ function: (identifier) @name.reference.call) @reference.call
79
+ (#not-match? @name.reference.call "^(require)$")
80
+ )
81
+
82
+ (call_expression
83
+ function: (member_expression
84
+ property: (property_identifier) @name.reference.call)
85
+ arguments: (_) @reference.call)
86
+
87
+ (new_expression
88
+ constructor: (_) @name.reference.class) @reference.class
@@ -0,0 +1,34 @@
1
+ (function_declaration
2
+ name: [
3
+ (identifier) @name.definition.function
4
+ (dot_index_expression
5
+ field: (identifier) @name.definition.function)
6
+ ]) @definition.function
7
+
8
+ (function_declaration
9
+ name: (method_index_expression
10
+ method: (identifier) @name.definition.method)) @definition.method
11
+
12
+ (assignment_statement
13
+ (variable_list .
14
+ name: [
15
+ (identifier) @name.definition.function
16
+ (dot_index_expression
17
+ field: (identifier) @name.definition.function)
18
+ ])
19
+ (expression_list .
20
+ value: (function_definition))) @definition.function
21
+
22
+ (table_constructor
23
+ (field
24
+ name: (identifier) @name.definition.function
25
+ value: (function_definition))) @definition.function
26
+
27
+ (function_call
28
+ name: [
29
+ (identifier) @name.reference.call
30
+ (dot_index_expression
31
+ field: (identifier) @name.reference.call)
32
+ (method_index_expression
33
+ method: (identifier) @name.reference.method)
34
+ ]) @reference.call