【问题标题】:Differences between VSCode and SublimeText 4 HTML+JavaScript syntax highlightingVSCode 和 SublimeText 4 HTML+JavaScript 语法高亮的区别
【发布时间】:2021-09-27 05:33:21
【问题描述】:

有人可以向我解释为什么 Sublime Text 4 突出显示这个 HTML 与 VSCode 不同吗?

<html>
    <body>
        <script>
            if (true) { 
        </script>
        
        <script>
            }
        </script>
    </body>
</html>

两者都将HTML 作为所选语法。我也在两者中使用相同的 textmate 颜色方案。

崇高文本 4

(使用Scope Hunter 包检查)

VSCode

(使用 VSCode 中的开发者工具检查)

更新

我正在使用服务器端 JavaScript 平台,在该平台上像 PHP 一样分解块。

更新 2

我正在开发语法荧光笔,但不是用于服务器端 JS。

【问题讨论】:

  • 因为if (true) { 没有意义?
  • @Andy 你可以在里面放任何东西。
  • 这并不意味着你应该这样做。
  • @Andy 我想我错过了你的 cmets 中隐含的一些东西。也许您可以向社区点头并附和答案?

标签: html visual-studio-code serverside-javascript sublimetext4


【解决方案1】:

真正的问题是,为什么他们首先要适当地突出显示它?您不能拆分 &lt;script&gt; 块。不过,您可以在 PHP 中执行类似的操作,但您的问题是关于 JavaScript。

您可以使用您的 HTML 创建一个简单的test.html 文档并在浏览器中打开它。打开开发者工具(例如在 Chrome 中)会显示“未完成的脚本”等错误。

【讨论】:

  • 我正在使用服务器端 JS 平台,所以它的行为确实像 PHP。
  • @AdamSpriggs — 您是否使用为 that 服务器端 JS 平台设计的语法高亮工具?还是为带有嵌入式客户端 JS 的 HTML 设计的语法荧光笔?
  • @AdamSpriggs 那么服务器端 JS 应该在某种模板标签中,例如 &lt;?php ... ?&gt; 用于 PHP,&lt;% ... %&gt; 用于任意数量的模板语言。拆分&lt;script&gt; 标签是非法的。
  • @AdamSpriggs 如果您使用的是 EJS 之类的东西,那么确实应该有一个特定的标签来开始/结束服务器端 JS 块。我不确定 VS Code 或 Sublime 是否支持这些,尽管可能有扩展支持。
  • @AdamSpriggs 似乎是这样,是的。 ST4 严格检查 &lt;/script&gt; 结束标记,而 VS Code 尝试以智能方式处理它。公平地说,使用 JSX/Babel/... 您的 JS 代码实际上可以将类似 XML/HTML 的标签作为代码,并且由于“非法”(嗯,意外的)JS 拆分,它在技术上并没有做错任何事情。跨度>
猜你喜欢
  • 2015-08-22
  • 1970-01-01
  • 2013-09-10
  • 2020-05-18
  • 2019-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多