Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse:在Scala中解决隐式转换和宏注释的问题_Eclipse_Scala_Scala Macros_Scala Ide_Scala Macro Paradise - Fatal编程技术网

Eclipse:在Scala中解决隐式转换和宏注释的问题

Eclipse:在Scala中解决隐式转换和宏注释的问题,eclipse,scala,scala-macros,scala-ide,scala-macro-paradise,Eclipse,Scala,Scala Macros,Scala Ide,Scala Macro Paradise,我正在使用macroparadise在我的项目中生成方法和案例类(宏本身在我使用它们的核心文件的单独项目中定义) 一切都按预期编译和运行,但Eclipse无法解析宏生成的变量和方法。然而,当我关闭并重新打开Eclipse时,它完美地识别了一切;我可以将鼠标悬停在类和方法上,获得正确的信息。但是,一旦我更改了任何内容,甚至只是关闭并重新打开引用generate方法的文件,Eclipse就会在所有生成的变量和方法下面加下划线,并告诉我“notfound:value{name}”(其中{name}是v

我正在使用macroparadise在我的项目中生成方法和案例类(宏本身在我使用它们的核心文件的单独项目中定义)

一切都按预期编译和运行,但Eclipse无法解析宏生成的变量和方法。然而,当我关闭并重新打开Eclipse时,它完美地识别了一切;我可以将鼠标悬停在类和方法上,获得正确的信息。但是,一旦我更改了任何内容,甚至只是关闭并重新打开引用generate方法的文件,Eclipse就会在所有生成的变量和方法下面加下划线,并告诉我“notfound:value{name}”(其中{name}是var名称)

更新
我已将该行为隔离到如下情况:

  • 我从一个文件中的带注释的对象A和另一个文件中使用A.hello的对象B开始
  • 我编译了A的文件,它向对象A添加了方法“hello”
  • 一切正常,直到(!)我重新打开包含对象A的文件
  • 问题:当我打开一个文件时,Eclipse做什么?它是否尝试基于编写的文件而不是编译的文件重新索引类?
    结束更新

    Eclipse如何解析变量?它正在查看我的目标/文件夹中的类文件吗?我的所有生成代码都有*.class文件,因此如果Eclipse正在查看这些文件,那么这些变量实际上应该存在

    有没有人让Eclipse正确解析这些变量?我尝试了IntelliJ IDEA,但IDEA无法使用隐式转换和宏解决任何问题(我遵循了我在网上找到的方向,但运气不佳)

    信息:
    面向Java开发人员的Eclipse IDE

    版本:氧气释放(4.7.0)
    构建id:20170620-1800

    Scala插件
    scala ide.org
    4.4.1.v-2_11-201605041057-92a3ed3
    org.scala ide.sdt.feature

    编译器插件:
    大沼泽地
    org.scalamacros
    天堂2.11.8

    2.1.0版

    环顾四周后,Intellij或Eclipse似乎不支持org.scala.macroparadise插件。我通过切换到org.scalameta.paradise插件解决了我的问题,该插件由Intellij scala插件支持


    使用org.scalameta,我生成的所有变量都可以解析,我的宏可以在IDE中展开。

    环顾四周,Intellij或Eclipse似乎不支持org.scala.macroparadise插件。我通过切换到org.scalameta.paradise插件解决了我的问题,该插件由Intellij scala插件支持


    使用org.scalameta,我生成的所有变量都可以解析,我的宏可以在IDE中展开。

    这并不奇怪,IDE通常不太好地帮助实现高级语言功能,如宏或依赖类型这并不奇怪,IDE通常不能很好地帮助实现高级语言功能,例如宏或依赖类型