GraphQL indentation inside of JavaScript strings #58
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This builds upon the embedded syntax "magic" we perform in order to
identify and highlight GraphQL queries within JavaScript/TypeScript
template strings.
In order to enable GraphQL syntax-aware indentation within these
strings, we replace
'indentexpr'with our own function which callsGetGraphQLIndentinside of a GraphQL syntax region and otherwisedefers to the indentation function provided by the filetype plugin.
To support loading
indent/graphql.viminside of other file types, itno longer sets any buffer-local settings when
b:did_indentis alreadyset. This means we use the "outer" JavaScript indentation settings for
the "inner" GraphQL region. In practice, this is probably only relevant
for
'indentkeys'; I haven't thought of a way to make that settingsyntax-aware, too, without also changing it for the JavaScript code.
This approach has been tested with all of the supported JavaScript and
TypeScript variants, but there still may be some lingering issues that I
haven't encountered yet.
Fixes #24, #54