1、环境安装

news2025/1/11 2:21:37

目录

  • 一、vscode插件
  • 二、设置代理GOPROXY
  • 三、gopls
    • 1 - vscode弹出插件支持安装
    • 2 - LSP
    • 3 - gopls
  • 四、vscode设置

一、vscode插件

  • vscode插件商店
    在这里插入图片描述

  • Go Team at Google:让vscode关联上go语言的开发环境
    在这里插入图片描述

  • Outline Map:更好的代码大纲
    在这里插入图片描述

二、设置代理GOPROXY

  • 华为云镜像:https://mirrors.huaweicloud.com/,也可以使用阿里云镜像;这里以华为云镜像为例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 使用命令添加代理:多个代理可以使用","隔开;direct -> 表示从镜像下载失败后,直接从原版本库地址下载;off:表示不允许从任何源下载
go env -w GOPROXY=https://repo.huaweicloud.com/repository/goproxy/,https://goproxy.nd.tevat.dev,https://goproxy.cn,direct

三、gopls

1 - vscode弹出插件支持安装

  • vscode新建一个main.go

在这里插入图片描述

  • vscode 会自动弹出插件安装:这里只需要安装gopls即可,go-outline之前已经在插件管理安装过了,直接x掉即可
    在这里插入图片描述
  • Install All:之前设置好了代理,这里选择install all;这里最关键的就是dlv(go的调试工具go-delve)和gopls;安装成功后可以在GOPATH的bin目录下看到对应的二进制文件;也可以手动安装 -> go install golang.org/x/tools/gopls@latest
    在这里插入图片描述
    在这里插入图片描述

2 - LSP

  • LSP 是什么:LSP,全称 Language Server Protocol,即语言服务器协议,这是微软创建的一个协议(目前已有 Codenvy,Red Hat 和 Sourcegraph 等公司一起支持它的发展)。定义了在编辑器或 IDE 中与语言服务器之间使用的协议,该语言服务器提供诸如自动完成,转到定义,查找所有引用等语言功能。语言服务器索引格式(LSIF,其发音类似于“ else if”)的目标是支持开发工具或 Web UI 中的富代码导航,而不需要源代码的本地副本
  • LSP 的官方网站:https://microsoft.github.io/language-server-protocol/,GitHub 地址:https://github.com/Microsoft/language-server-protocol。目前最新版本(2020-09-06):3.15
  • LSP 解决了什么问题
    • 为编程语言添加诸如自动完成、转到定义或鼠标悬停出现文档之类的功能需要付出大量的努力。传统上,这项工作必须为每个开发工具重复进行,因为每个工具为实现相同的特性提供不同的 api
    • 语言服务器(Language Server)旨在提供特定语言的智能功能,并通过支持进程间通讯协议与开发工具进行通信
    • 语言服务器协议(LSP)背后的思想是为这些服务器和开发工具的通信方式提供标准化协议支持。通过这种方式,可以在多个开发工具中重用单个 Language Server,而这些工具反过来可以用最少的工作支持多种语言
    • 例如,之前需要为 VSCode 构建 Go 插件、为 Sublime Text 构建 Go 插件、为 Vim 构建 Go 插件、为 Sourcegraph 构建 Go 插件,很多重复的工作。现在,对于每种语言,LSP 允许语言社区将精力集中在一个高性能语言服务器上,这个服务器可以提供代码完成,悬停文档提示、跳转到定义、查找引用等功能,而编辑器和客户端社区可以专注于构建一个单一的、高性能的、直观的和惯用的扩展,这个扩展可以与任何语言服务器通信,即时提供深入的语言支持
  • LSP 的工作原理:语言服务器(Language Server)作为单独的进程运行,开发工具在 LSP 基础上通过 JSON-RPC 与服务器通信
    • ①.用户在开发工具中打开一个文件(称为文档):开发工具通知语言服务器文档已打开(textDocument/didOpen)。从现在开始,关于文档内容的真实信息不再存储在文件系统中,而是由开发工具保存在内存中。现在必须在开发工具和语言服务器之间同步内容
    • ②.用户进行编辑:该开发工具通知服务器文档更改(textDocument/didChange),并由语言服务器更新文档的语言表示形式。在这种情况下,语言服务器会分析这些信息,并将检测到的错误和警告通知开发工具(textDocument/publishDiagnostics)
    • ③.在打开的文档中,用户就一个符号(symbol)执行 Go to Definition:该开发工具发送一个带有两个参数的 “textdocument/Definition” 请求:(1)文档 URI 和(2)发出 “Go to Definition” 请求的文本位置,发送到服务器。服务器的响应包含文档 URI 和该符号在该文档中的定义位置
    • ④.用户关闭文档(文件):开发工具发出 “textDocument/didClose” 的通知,告知语言服务器文档现在不在内存中了。文件系统上的当前内容现在是最新的

3 - gopls

  • gopls是什么: gopls(读音:go please),是 LSP 的一个语言端(Server)实现,是针对 Go 语言的 LSP 实现;gopls 是 Go 官方维护的、对 LSP 的实现,即一个 Go 语言的官方 Language Server(目前 gopls 还不是稳定版本,处于 alpha 状态,所以 VSCode 默认没有启用它)

四、vscode设置

  • 设置快捷键:CTRL + `
  • 用户与工作区的区别:用户指的是所有项目的设置,工作区指的是当前项目的设置
    • 不同项目通用的就配置在用户上
    • 当前项目特有的就配置在工作区

在这里插入图片描述

  • gopls设置:可以看到在当前的项目中就多了settings.json配置文件
    在这里插入图片描述
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/194068.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

操作系统进程同步

文章目录操作系统进程同步一.进程同步的基本概念1.两种形式的制约关系2.临界资源(critical resource)3.临界区(critical section)4.同步进制遵循的原则二.硬件同步机制1.关中断2.Test-and-Set 指令3.Swap指令实现进程互斥三.信号量…

mysql-视图的定义和简单使用

mysql-视图视图1. 视图的定义2.视图的创建规则和使用限制小结视图 1. 视图的定义 视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。 视图的一些常见应用: 重用SQL语句。 简化复杂的SQL操作。在编写查询后,可以…

c语言之链表

今天来介绍一下c语言如何手写一个单向链表,我们都知道链表是用来提高空间的利用效率的数据结构,其中包括了一个数据域和指针域,数据域用来存储数据,指针域用来指向下一个节点。数据结构如下 我们都知道数据结构最主要的是他的增删…

从底层入手搞定C++引用和内联函数

C引用和内联函数 文章目录C引用和内联函数一、引用1.1引用的概念1.1.1代码展示1.1.2图示1.2引用的特性1.3常引用1.4引用的使用场景1.5 传值、传引用效率比较1.6 引用和指针的区别二、内联函数2.1.内联函数的概念2.2内联函数的特性总结一、引用 首先我们来看一下引用的概念&…

每天10个前端小知识 【Day 2】

前端面试基础知识题 1. arguments 这种类数组&#xff0c;如何遍历类数组&#xff1f; for(var i 0, len arrayLike.length; i < len; i) { …… }使用ES6的 … 运算符&#xff0c;我们可以轻松转成数组。 function func(...arguments) { console.log(arguments); // […

蓝牙和射频技术的关系

蓝牙和射频技术的关系 提到蓝牙大家的比较熟悉&#xff0c;但射频技术很多都没有明白什么意思&#xff1f; 现简单介绍下他们的关系&#xff0c;让想了解射频技术的朋友更清楚。 1&#xff1a;定义&#xff1a; 射频&#xff08;RF&#xff09;是Radio Frequency的缩写&#xf…

Fluent的模型参数化(2)

前言&#xff1a;本文基于2023R1版本。在《Fluent的模型参数化&#xff08;1&#xff09;》中&#xff0c;对将Fluent模型进行参数化的方法进行了概述。本文主要基于已参数化的模型&#xff0c;进行参数分析的方法。基本概念&#xff1a;输入参数&#xff1a;工况的设置数据&am…

SpringMVC之入门案例

目录 一&#xff1a;概述 二代码实操&#xff1a; 步骤1:创建Maven项目&#xff0c;并导入对应的jar包 步骤2:创建控制器类 步骤3:创建配置类 步骤4:创建Tomcat的Servlet容器配置类 步骤5:配置Tomcat环境 步骤6:启动运行项目 步骤7:浏览器访问 知识点1&#xff1a;Co…

Cesium的设计结构与零基础入门

关于cesium我最近会写一系列的文章教程,带大家一步一步的从零开始学习cesium,看过我的文章的人都清楚我的讲课方式就是从一个小白的视角,从一个什么都不懂的视角,一点一点的循序渐进为大家讲清楚一个知识,好废话不多说我们开始! 首先在学习之前,你必须清楚cesium是个什…

DynaSLAM-7 DynaSLAM中双目运行流程(Ⅰ):加载Mask R-CNN网络部分MaskNet.cc

目录 1.执行流程 2. SegmentDynObject::SegmentDynObject 3. SegmentDynObject::GetSegmentation 1.执行流程 我们输入到命令行五个参数&#xff1a; stereo_kitti path_to_vocabulary path_to_settings path_to_sequence (path_to_masks) 分别是DynaSLAM双目例程中的可执行…

血氧仪/额温枪/电子体温计等 LED数显/数码管显示驱动控制电路(IC/芯片)-VK1S68C资料 SSO24小体积封装,FAE技术支持

产品品牌&#xff1a;永嘉微电/VINKA 产品型号&#xff1a;VK1S68C 封装形式&#xff1a;SSOP24 概述&#xff1a; VK1S68C是一种带键盘扫描接口的数码管或点阵LED驱动控制专用芯片&#xff0c;内部集成有3线串行接口、数据锁存器、LED 驱动、键盘扫描等电路。SEG脚接LED阳极…

Go 项目(一)

目录基础环境包管理编码规范命名规范注释import 规范错误处理RPC内置 RPC改协议改调用基础 基础部分参考这个系列接下来的这部分是对上面的更新和重构&#xff0c;更加深入理解框架部分 环境 基础环境&#xff0c;主要在Linux上搞&#xff1b;最主要是 docker&#xff0c;do…

Mac 可以玩游戏吗,有哪些游戏可以玩?

Mac 可以玩游戏吗&#xff0c;有哪些游戏可以玩&#xff1f; 新款的 MacBook Pro 入手有一段时间了&#xff0c;期间一直在熟悉 MacOS 系统及日常工作使用&#xff0c;一直都听说 MacBook 是工作本&#xff0c;不得不说工作使用确实很强&#xff0c;但用的久了就还是特别想折腾…

flex 布局:实现一行固定个数,超出强制换行(流式布局)

一、flex 布局基础知识 flex 布局的知识想必不用多说&#xff0c;一些常用的属性如下&#xff1a; 设置在父容器上的属性&#xff1a;display&#xff1a;flex&#xff0c; align-items, justify-content, flex-wrap。 设置在子容器上的属性&#xff0c;通过 flex: 1&#x…

最终一致分布式事务方案解析

业来主流的分布式事务的解决方案主要归位两大类&#xff1a;强一致性分布式事务和最终一致性分布式事务&#xff0c;本文不对强一致性分布式事务做过多描述&#xff0c;主要针对最终一致性方案解析。 根据笔者的工作经验来看&#xff0c;最终一致性方案适用用大部分互联网场景…

SpringBoot 2.7.8 自定义 Starter 自动配置

文章目录SpringBoot 2.7.8 自定义 Starter前言本次练习的代码仓库代码简要说明custom-springboot-starter-demo 的pom文件customer-starter 的pom文件test 的pom文件配置类配置信息SpringBoot 2.7.8 自定义 Starter 前言 前段时间&#xff0c;SpringBoot 出 3.x 版本了。听说…

如何与他人交流 (如何跟老板提涨工资) 第16章

最重要的事情 ---强有力的论证上期我们说根据场景来优化策略,是在隔靴搔痒,然而一个容易给出理由的人很容易成为演讲的高手.说服别人的理性与感性举个例子&#xff0c;我们如果说服别人买一件商品。采用打广告的形式&#xff0c;往往有两种途径。比如说我们要买一辆车。展示它的…

Power BI瀑布图

瀑布图&#xff08;Waterfall Plot&#xff09;也被称为阶梯图&#xff0c;它出现的历史并不长&#xff0c;最初为麦肯锡所创&#xff0c;因自上而下形似瀑布而得名&#xff0c;面世之后以其展示效果清晰而流畅被广为接受&#xff0c;经常在经营和财务分析中使用。 瀑布图是根…

4d view软件 .vol .4dv转 dcom文件

一、 .vol转 dcom文件 1、4d view软件打开vol文件 2、settings--dicom configuration-add&#xff0c;设置如下&#xff08;前面的alias、ae title等设的可以随便一些&#xff0c;我都设了1&#xff09;&#xff0c;然后save&exit&#xff08;第6步设置也可以&#xff09…

Vue13-计算属性computed

首先使用methods方法实现属性计算 步入正题&#xff1a; 计算属性&#xff1a;拿已有的属性计算得出新的属性 1.vue中属性和计算属性是分开的&#xff0c;属性在data中&#xff0c;计算属性在computed中 computed中计算属性以对象的形式存贮 这里是将fullName以及get的返回值…