gpt4 book ai didi

javascript - 在 Monaco Editor for javascript 上设置 "this"上下文

转载 作者:行者123 更新时间:2023-12-01 15:18:26 28 4
gpt4 key购买 nike

创建用于 Javascript 的编辑器时,是否可以设置“this”关键字最初应用的上下文(可能是全局范围)?

在 Monaco Editor Playground 中,如果 editor 的值最初为空白并且我键入 this.我希望看到自动完成列表显示基于适当上下文的可能性。

即使在函数中,输入 this.只会导致出现在函数中的单词。没有其他可用选项。

最佳答案

当然不是开箱即用。问题是 JavaScript 是一种相当棘手的语言 .为了能够知道“ 这个 ”的当前值 - 你需要上下文。而且很可能你永远不会拥有它。
要检查代码,您有 3 个分析级别:

  • 语法分析 .摩纳哥有。语法分析可以告诉您有关代码的基本信息。 var 是关键字,“this”是标识符(如果我没记错的话),第 2 行 pos 3 是标识符,位于函数中。而已。
  • 语义分析 .这种类型的分析还可以告诉您变量的类型。它可以为您提供有关其类型、成员的更多信息,也许是它们对代码的含义。这在 JS 中是不准确的,因为您可以在运行时向 JS 中的类型添加或删除成员。所以你最终可以得到完全不同的类型。例如,您可能有一个具有 1 个属性的类型。然后,您可以在代码中添加一个 for 循环,添加与迭代一样多的属性(user1、user2 等)。因此,您最终会得到 Company.User1、Company.User2 等,而您的开头是:
  • var Company = {}所以在 JS 中没有 100% 准确的分析。
  • 运行时分析 - 这或多或少是浏览器用来在代码执行时判断变量类型的真正方法(因为你不知道 JS)。这是在代码执行时完成的。

  • 除非您达到第 3 级(运行时分析),否则使用 JS - 不能保证您是正确的。大多数编辑器会部分使用某种语法分析、某种语义分析和(也许)只是一点运行时分析,以尝试使结果更准确。但它们永远不会是准确的。
    如果你确定这是什么。应该是 - 您可以通过附加完成提供程序在 monaco 编辑器中提供自己的自动完成项:
    https://microsoft.github.io/monaco-editor/api/interfaces/monaco.languages.completionitemprovider.html

    关于javascript - 在 Monaco Editor for javascript 上设置 "this"上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48793180/

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