V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
northluo
V2EX  ›  Go 编程语言

Goland 引用问题求教

  •  
  •   northluo · 2024-12-12 10:25:35 +08:00 · 2001 次点击
    这是一个创建于 365 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在有 3 个结构体

    type A struct {
        *B
        ccc.C
    }
    
    type B struct {
        opts *Option
    }
    
    package ccc
    type C struct {
        opts *Option
    }
    
    type Option struct {
        emlog.Logger   // 日志
    }
    
    // 测试函数
    func (a *A) testMethod() {
        a.opts.Logger // 此时 Goland 中 opts 的引用会报错, 提示 Ambiguous reference 'opts' ,但是可以编译 可以运行,因为只能引用 B 里面的 opts ,C 跨包了,是私有的 opts ,但是 Goland 会索引到就很离谱(同事用的 vscode 就没问题)
        a.B.opts.Logger // Goland 不会报错 
    }
    

    各位大佬知道如何配置 goland 解决这个问题吗?

    9 条回复    2024-12-24 11:39:48 +08:00
    danbai
        1
    danbai  
    PRO
       2024-12-12 10:41:57 +08:00
    清空索引可以吗
    northluo
        2
    northluo  
    OP
       2024-12-12 10:44:35 +08:00
    @danbai 试过两次 还是不行,讲道理小写的 opts 不是同一个包下并不会索引到~~
    pkoukk
        3
    pkoukk  
       2024-12-12 10:52:01 +08:00
    我不用 goland 就是因为 go 明明提供了 gopls ,它非不用...非要自己搓一个...
    MoYi123
        4
    MoYi123  
       2024-12-12 10:52:54 +08:00
    northluo
        5
    northluo  
    OP
       2024-12-12 11:03:06 +08:00
    @MoYi123 我去 还真是~~2 年前的 bug 了,这还不修~
    x1aoYao
        6
    x1aoYao  
       2024-12-12 11:09:11 +08:00
    @pkoukk 是的。JB 一家明显没法像每个语言各自维护的 LSP 做的完善
    imherer
        7
    imherer  
       361 天前   ❤️ 1
    说实话以前还没遇到过类似的问题,但是最近经常遇到各种爆红,结构体点不出来,实际上运行又没问题
    vegeta2ex
        8
    vegeta2ex  
       353 天前
    @imherer 经常碰到这种,重启才能解决
    imherer
        9
    imherer  
       353 天前
    @luffy2u 我是重启都解决不了,只要它爆红了,就一直红到底
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   921 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:25 · PVG 03:25 · LAX 11:25 · JFK 14:25
    ♥ Do have faith in what you're doing.