jparise / vim-graphql

A Vim plugin that provides GraphQL file detection, syntax highlighting, and indentation.
MIT License
487 stars 25 forks source link

Use main_syntax variable to detect embedded syntax #108

Closed jparise closed 1 month ago

jparise commented 1 month ago

Our syntax file can be loaded in two ways: as a top-level syntax (e.g. when we're in a 'graphql' buffer) and embedded within an outer ("main") syntax (e.g. within a 'javascript' buffer).

The syntax file has some conditional behavior when it's embedded (such as not setting syn sync), to avoid infecting the outer context.

We were previously using a custom b:graphql_nested_syntax variable to differentiate these cases. There is a more "standard" convention for this that uses a main_syntax global variable, so this change switches the code to use that approach instead.

This adds some additional housekeeping steps to our embedding procedure, so this change also introduces a graphql#embed_syntax() helper function that we now use in all of our filetype-specific syntax extension files.

jparise commented 1 month ago

See also: