golang在Chrome浏览器中显示Go文档函数描述的工具提示插件GoDocTooltip的使用

GoDocTooltip - Chrome浏览器中显示Go文档函数描述的工具提示插件

插件介绍

GoDocTooltip是一个为Golang开发者设计的Chrome浏览器扩展。当您在Go官方文档网站(pkg.go.dev)浏览时,这个扩展会在函数列表中显示函数的描述信息作为工具提示。这样您就不需要再滚动长长的页面来查看函数描述了。

功能特点

  • 在Go文档网站的函数列表上自动显示工具提示
  • 鼠标悬停时显示完整的函数描述
  • 支持标准库和第三方库文档
  • 节省浏览文档时的滚动时间

安装使用

  1. 从Chrome网上应用商店安装GoDocTooltip插件
  2. 安装完成后,访问以下Go文档页面即可体验:
    • 标准库:os包
    • 第三方库:gin框架

示例效果

[图片:Snapshot.png - GoDocTooltip的实际使用效果截图]

技术实现

虽然插件本身是用JavaScript开发的,但我们可以看一个类似的Go代码示例,展示如何获取和显示文档注释:

package main

import (
    "fmt"
    "go/doc"
    "go/parser"
    "go/token"
)

func main() {
    // 示例:解析Go代码并提取文档注释
    fset := token.NewFileSet()
    
    // 解析示例代码文件
    file, err := parser.ParseFile(fset, "example.go", `
        package example
        
        // Add adds two integers and returns the result
        func Add(a, b int) int {
            return a + b
        }
    `, parser.ParseComments)
    
    if err != nil {
        fmt.Println("Error parsing file:", err)
        return
    }
    
    // 从AST中提取文档
    pkg := &doc.Package{
        Name:  "example",
        Files: []*ast.File{file},
    }
    
    // 打印函数文档
    for _, f := range pkg.Funcs {
        fmt.Printf("Function: %s\n", f.Name)
        fmt.Printf("Documentation: %s\n", f.Doc)
    }
}

注意事项

  • 该插件仅适用于pkg.go.dev网站
  • 需要Chrome浏览器支持
  • 遵循MIT开源协议

总结

GoDocTooltip是一个简单但实用的工具,能显著提升Golang开发者在查阅文档时的效率。通过即时显示函数描述的工具提示,开发者可以更快地找到所需信息,而无需频繁滚动页面。


更多关于golang在Chrome浏览器中显示Go文档函数描述的工具提示插件GoDocTooltip的使用的实战教程也可以访问 https://www.itying.com/category-94-b0.html

1 回复

更多关于golang在Chrome浏览器中显示Go文档函数描述的工具提示插件GoDocTooltip的使用的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


GoDocTooltip - Chrome浏览器中的Go文档工具提示插件

GoDocTooltip是一个Chrome浏览器扩展,它可以在浏览Go代码时显示函数、方法和类型的文档工具提示,无需离开当前页面即可查看相关文档。

功能特点

  1. 鼠标悬停在Go标识符上时显示文档提示
  2. 支持标准库和第三方包的文档
  3. 快速访问godoc.org上的完整文档
  4. 可配置的触发延迟和显示时间
  5. 支持黑暗模式

安装方法

  1. 打开Chrome网上应用店
  2. 搜索"GoDocTooltip"
  3. 点击"添加到Chrome"按钮

使用示例

当你在GitHub或其他代码托管平台浏览Go代码时,只需将鼠标悬停在函数、方法或类型上,就会显示相应的文档提示。

Golang实现原理

虽然GoDocTooltip本身不是用Go编写的,但我们可以看一个类似的Go实现的简单概念验证:

package main

import (
	"fmt"
	"go/ast"
	"go/doc"
	"go/parser"
	"go/token"
)

func extractDocFromSource(source string) (map[string]string, error) {
	fset := token.NewFileSet()
	f, err := parser.ParseFile(fset, "source.go", source, parser.ParseComments)
	if err != nil {
		return nil, err
	}

	pkg := &ast.Package{
		Name:  "main",
		Files: map[string]*ast.File{"source.go": f},
	}

	docPkg := doc.New(pkg, "./", doc.AllDecls)
	docs := make(map[string]string)

	// 收集函数文档
	for _, fn := range docPkg.Funcs {
		docs[fn.Name] = fn.Doc
	}

	// 收集类型和方法文档
	for _, typ := range docPkg.Types {
		docs[typ.Name] = typ.Doc
		for _, method := range typ.Methods {
			docs[typ.Name+"."+method.Name] = method.Doc
		}
	}

	return docs, nil
}

func main() {
	source := `package main

// Add adds two integers
func Add(a, b int) int {
	return a + b
}

// Person represents a person
type Person struct {
	Name string
}

// Greet says hello
func (p *Person) Greet() string {
	return "Hello, " + p.Name
}`

	docs, err := extractDocFromSource(source)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}

	fmt.Println("Add:", docs["Add"])
	fmt.Println("Person:", docs["Person"])
	fmt.Println("Person.Greet:", docs["Person.Greet"])
}

配置选项

GoDocTooltip提供以下配置选项(通过扩展选项页面设置):

  1. 触发延迟:鼠标悬停后显示提示的延迟时间(毫秒)
  2. 显示持续时间:提示显示的持续时间(毫秒,0表示一直显示)
  3. 主题:浅色/深色/跟随系统
  4. 字体大小:提示文本的字体大小
  5. 启用/禁用:全局启用或禁用工具提示

类似工具

  1. Go Oracle:一个更强大的代码分析工具
  2. godef:Go定义跳转工具
  3. gogetdoc:获取Go文档的CLI工具

注意事项

  1. 该扩展需要访问你浏览的代码页面的权限
  2. 对于私有仓库,可能无法获取第三方包的文档
  3. 大型代码库可能会有轻微的性能影响

GoDocTooltip是Go开发者提高代码阅读效率的有用工具,特别是当需要快速理解不熟悉的代码库时。

回到顶部