diff --git a/analysis/src/SemanticTokens.ml b/analysis/src/SemanticTokens.ml index e4b277e0b..80a1badb5 100644 --- a/analysis/src/SemanticTokens.ml +++ b/analysis/src/SemanticTokens.ml @@ -395,6 +395,22 @@ let command ~debug ~emitter ~path = Ast_iterator.default_iterator.constructor_declaration iterator cd in + let structure_item (iterator : Ast_iterator.iterator) + (item : Parsetree.structure_item) = + (match item.pstr_desc with + | Pstr_primitive {pval_name = {txt = id; loc}} -> emitter |> emitVariable ~id ~debug ~loc; + | _ -> ()); + Ast_iterator.default_iterator.structure_item iterator item + in + + let signature_item (iterator : Ast_iterator.iterator) + (item : Parsetree.signature_item) = + (match item.psig_desc with + | Psig_value {pval_name = {txt = id; loc}} -> emitter |> emitVariable ~id ~debug ~loc; + | _ -> ()); + Ast_iterator.default_iterator.signature_item iterator item + in + let iterator = { Ast_iterator.default_iterator with @@ -410,6 +426,8 @@ let command ~debug ~emitter ~path = pat; typ; type_declaration; + structure_item; + signature_item; } in