Just use VSCode with the standard Go plugin. 

On Jun 9, 2025, at 9:23 PM, Kurtis Rader <kra...@skepticism.us> wrote:


On Mon, Jun 9, 2025 at 7:01 PM Zhaoxun Yan <yan.zhao...@gmail.com> wrote:
Oh! Thank you Kurtis. So do you have a special Editor to inform you about the functions? My current editor cannot even tell what type of variable a go function would return, let alone parameter hints, etc.

I use a VIM plugin that talks to the https://pkg.go.dev/golang.org/x/tools/gopls tool. That makes it easy to jump to the definition of a function or other symbol and find all the places that use it. It is likely your editor can be configured to interact with that tool.
 
On Mon, Jun 9, 2025 at 1:50 PM Kurtis Rader <kra...@skepticism.us> wrote:

On Sun, Jun 8, 2025 at 9:35 PM Zhaoxun Yan <yan.zhao...@gmail.com> wrote:
it turned out to be an error misjudgement. The real line that caused trouble is this:
s = er.Error()+string(out)
The error is gone after I changed it to this line :
s = fmt.Sprintf("%v %s", er, out)

The stdlib os.exec.Command() function only returns a single value. Which should result in a compiler error since your program expects two values. I'm going to guess that you are calling a different function with that name which can return two values and the "er" return value can be nil. Which would result in the "er.Error()" call to dereference a nil value. So I think you have incorrectly diagnosed the cause of the problem. The first statement does not correctly handle "er" being nil. The "fmt.Sprintf()" correctly handles "er" being the nil value.
 
On Fri, Jun 6, 2025 at 6:29 PM Zhaoxun Yan <yan.zhao...@gmail.com> wrote:
--------------------
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x6646f2]

goroutine 1 [running]:
util.CommandArgs({0xc000093cb0?, 0x2?, 0xc000071380?})
        /home/zxun/src/util/util.go:49 +0xf2
--------------------
This error occurred because package [main] uses a function called "CommandArgs" from my self-built package [util] with args in another package [conf] in the same directory. Package [util] got lost because it does not know where is package [conf]
like this
[util] /home/zxun/src/util.go
[conf] /home/zxun/src/conf.go
[main] /home/zxun/src/main.go...
/home/zxun/src/go.mod:

require(
  util v0.0.0
  ...
replace util => ../util


The usage line in main.go:
fmt.Println( util.CommandArgs([]string{conf.IreportExec, conf.IreportScript, "redis"}) )

util.CommandArgs:

func CommandArgs(args []string) string{
  if len(args) ==0{
    return "args are empty!"
  }
  var s string
  if len(args) ==1{
    out, er := exec.Command(args[0]).CombinedOutput()
    s = er.Error()+string(out)
  }else{
    out, er := exec.Command(args[0],args[1:]...).CombinedOutput()
    s = er.Error()+string(out)
    fmt.Println(s)
  }
  return s
}

So is my analysis correct? I have not seen s printed yet, because s shall include "<nil>" at the beginning. I am using go1.18. If the cause is util package cannot access a variable in conf, is it possible to walk around by a deepcopy of the string array (which will be in package main)?

Thanks in advance.

--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/golang-nuts/CADEX6_Wzy%3DPoqdXBNUqQ0tGYmQfacTq6A%2By58a5osDkKB-Z1yA%40mail.gmail.com.


--
Kurtis Rader
Caretaker of the exceptional canines Junior and Hank


--
Kurtis Rader
Caretaker of the exceptional canines Junior and Hank

--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/golang-nuts/CABx2%3DD-_MxcMch21H-UhOX_N8Wf2A-8Gtb-WJ1DXqkh5YBAEGQ%40mail.gmail.com.

--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/golang-nuts/C63508C6-44CB-41E1-9081-A125254BB566%40ix.netcom.com.

Reply via email to