gpt4 book ai didi

intellij-idea - 将 Markdown JSX 语言注入(inject)添加到 IntelliJ

转载 作者:行者123 更新时间:2023-12-04 13:43:38 24 4
gpt4 key购买 nike

简短的摘要
所以,我正在尝试使用 MDX在我的项目中。它只是 MarkDown 与一些 JSX(包括 ES6 导入)混合在一起。我想使用 IntelliJ 来编辑文件并为 Markdown 位和 JSX 位获得正确的语法突出显示。
我想我应该可以配置一个 language injection为此,但我在尝试前进时有点停滞不前。看来我要自己写XML了,因为我想要的语言语法是JSX,而UI中的目标语言只有xml、js、sql和其他一些常见的语言。
我试过的
查看 Groovy injections 的来源和 Java injections ,我开始拼凑我需要的东西。
looked at the PSI Structure我的示例 MDX 文件之一(我已经告诉 IntelliJ 将其视为 Markdown)。我可以看到我的 JSX 标签被注册为 HTML_TAG 元素。

<?xml version="1.0" encoding="UTF-8"?>
<component name="LanguageInjectionConfiguration">
<injection language="JSX" injector-id="markdown">
<display-name>JSX in Markdown</display-name>
<place><![CDATA[psiElement().withElementType(org.intellij.plugins.markdown.lang.MarkdownTokenTypes.HTML_TAG)]]></place>
</injection>
</component>
IntelliJ 无法导入它,并显示一条消息,“没有导入新条目”。然后我查看了一个示例导出,发现我应该使用 <LanguageInjectionConfiguration>标签,所以我试过:
<LanguageInjectionConfiguration>
<injection language="JSX" injector-id="markdown" enabled="true">
<display-name>JSX in Markdown</display-name>
<place><![CDATA[psiElement().withElementType(org.intellij.plugins.markdown.lang.MarkdownTokenTypes.HTML_TAG)]]></place>
</injection>
</LanguageInjectionConfiguration>
...但是,我收到了同样的错误。
查看 IntelliJ 日志,它显示此错误:

2018-10-23 12:17:28,680 [3894254] WARN - s.compiler.PatternCompilerImpl - JSX in Markdown: psiElement().withElementType(org.intellij.plugins.markdown.lang.MarkdownTokenTypes.HTML_TAG)

java.lang.IllegalStateException: 33(.): 'org.' method name start is invalid, '(' expected

at com.intellij.patterns.compiler.PatternCompilerImpl.throwError(PatternCompilerImpl.java:293)

...long, long stack trace...

at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

MarkdownTokenTypes.HTML_TAG绝对是 IElementType需要 one of the withElementType method signatures .
结论
我担心我把事情复杂化了。是否有编写自定义语言注入(inject)的好指南?我不清楚 place 的返回类型应该是什么标签,也不是我应该赞成使用模式而不是地方。

最佳答案

根据 this issue 上的评论有一个计划中的插件将在 JetBrains 产品中启用对 MDX 的“基本支持”:

comment picture

尚不清楚“基本 MDX 支持”是什么意思,但它不仅仅是语法突出显示和单词完成。它将具有“编码帮助”,我认为这将是上下文操作、自动导入等。我要求对该线程进行澄清,如果我听到更多信息,将更新此答案。

关于intellij-idea - 将 Markdown JSX 语言注入(inject)添加到 IntelliJ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52954806/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com