pub const TAGGING_QUERY: &'static str = "; Modules\n;--------\n\n(\n  (comment)? @doc .\n  (module_definition (module_binding (module_name) @name) @definition.module)\n  (#strip! @doc \"^\\\\(\\\\*\\\\*?\\\\s*|\\\\s\\\\*\\\\)$\")\n)\n\n(module_path (module_name) @name) @reference.module\n\n; Module types\n;--------------\n\n(\n  (comment)? @doc .\n  (module_type_definition (module_type_name) @name) @definition.interface\n  (#strip! @doc \"^\\\\(\\\\*\\\\*?\\\\s*|\\\\s\\\\*\\\\)$\")\n)\n\n(module_type_path (module_type_name) @name) @reference.implementation\n\n; Functions\n;----------\n\n(\n  (comment)? @doc .\n  (value_definition\n    [\n      (let_binding\n        pattern: (value_name) @name\n        (parameter))\n      (let_binding\n        pattern: (value_name) @name\n        body: [(fun_expression) (function_expression)])\n    ] @definition.function\n  )\n  (#strip! @doc \"^\\\\(\\\\*\\\\*?\\\\s*|\\\\s\\\\*\\\\)$\")\n)\n\n(\n  (comment)? @doc .\n  (external (value_name) @name) @definition.function\n  (#strip! @doc \"^\\\\(\\\\*\\\\*?\\\\s*|\\\\s\\\\*\\\\)$\")\n)\n\n(application_expression\n  function: (value_path (value_name) @name)) @reference.call\n\n(infix_expression\n  left: (value_path (value_name) @name)\n  operator: (concat_operator) @reference.call\n  (#eq? @reference.call \"@@\"))\n\n(infix_expression\n  operator: (rel_operator) @reference.call\n  right: (value_path (value_name) @name)\n  (#eq? @reference.call \"|>\"))\n\n; Operator\n;---------\n\n(\n  (comment)? @doc .\n  (value_definition\n    (let_binding\n      pattern: (parenthesized_operator (_) @name)) @definition.function)\n  (#strip! @doc \"^\\\\(\\\\*\\\\*?\\\\s*|\\\\s\\\\*\\\\)$\")\n)\n\n[\n  (prefix_operator)\n  (sign_operator)\n  (pow_operator)\n  (mult_operator)\n  (add_operator)\n  (concat_operator)\n  (rel_operator)\n  (and_operator)\n  (or_operator)\n  (assign_operator)\n  (hash_operator)\n  (indexing_operator)\n  (let_operator)\n  (let_and_operator)\n  (match_operator)\n] @name @reference.call\n\n; Classes\n;--------\n\n(\n  (comment)? @doc .\n  [\n    (class_definition (class_binding (class_name) @name) @definition.class)\n    (class_type_definition (class_type_binding (class_type_name) @name) @definition.class)\n  ]\n  (#strip! @doc \"^\\\\(\\\\*\\\\*?\\\\s*|\\\\s\\\\*\\\\)$\")\n)\n\n[\n  (class_path (class_name) @name)\n  (class_type_path (class_type_name) @name)\n] @reference.class\n\n; Methods\n;--------\n\n(\n  (comment)? @doc .\n  (method_definition (method_name) @name) @definition.method\n  (#strip! @doc \"^\\\\(\\\\*\\\\*?\\\\s*|\\\\s\\\\*\\\\)$\")\n)\n\n(method_invocation (method_name) @name) @reference.call\n";
Expand description

The symbol tagging query for OCaml.