我正在使用macroparadise在我的項目中生成方法和案例類(宏本身在我的核心文件中使用它們的單獨項目中定義)。Eclipse:在Scala中解決隱式轉換和宏註解的問題
所有內容都按預期編譯並運行,但Eclipse無法解析由我的宏生成的變量和方法。但是,當我關閉並重新打開Eclipse時,它可以完美地識別所有內容;我可以將鼠標懸停在類和方法上並獲取正確的信息。但是,只要我改變任何東西,甚至關閉並重新打開引用generate方法的文件,Eclipse就會強調所有生成的變量和方法,並告訴我「not found:value {name}」(其中{name}是var名稱)。
更新
我已經分離出的行爲的情況下這樣的:
- 我開始在一個文件中的註釋對象A,以及使用A.hello在另外一個對象B文件。
- 我編譯的文件,它增加了方法「你好」到對象A.
- 一切工作正常,直到我重新打開包含對象A.文件
問題(!):什麼是Eclipse的時候做我打開一個文件?它是否嘗試基於書面文件而不是編譯的類對類進行重新索引?
末更新
如何解決Eclipse的變量?它是否查看我的目標/文件夾中的類文件?我的所有生成的代碼都有* .class文件,因此如果Eclipse正在查看這些代碼,那麼這些變量實際上應該存在。
有沒有人得到Eclipse來正確解決這些變量?我嘗試了IntelliJ IDEA,但IDEA無法解決任何使用隱式轉換和宏的問題(我按照我在網上找到的指示,沒有運氣)。
信息:
Eclipse IDE的Java開發人員
版本:釋氧(4.7.0)
版本ID:20170620-1800
的Scala插件
scala-ide.org
4.4.1.v-2_11-201605041057-92a3ed3
org.scala-ide.sdt.feature
編譯器插件:
macroparadise
org.scalamacros
paradise_2.11.8
版本2.1.0
並不令人感到意外,IDE通常不太適合使用高級語言功能,例如宏或依賴類型 – cchantep