Skip to content

Conversation

@jparise
Copy link
Owner

@jparise jparise commented Aug 3, 2024

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.

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
Copy link
Owner Author

jparise commented Aug 3, 2024

@jparise jparise merged commit 1653be9 into master Aug 3, 2024
@jparise jparise deleted the main_syntax branch August 3, 2024 14:58
@jparise jparise mentioned this pull request Aug 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants