Visual Studio Code (VSCode)是一个轻量级但功能强大的源代码编辑器,可在桌面上运行,适用于Windows,macOS和Linux。 它内置了对JavaScript,TypeScript和Node.js的支持,并具有丰富的其他语言(如C++,C#,Java,Python,PHP,Go)和运行时(如.NET和Unity)的扩展生态系统。

使用这些介绍性视频开始使用VSCode开始您的旅程:https://code.visualstudio.com/docs/getstarted/introvideos
本文介绍如何使用VSCode进行PostgreSQL开发环境准备


安装VSCode


1.  下载VSCode

根据用户环境,下载合适的VSCode版本下载地址:https://code.visualstudio.com/download

mac vscode运行go语言 mac使用vscode开发java_mac vscode运行go语言

2.   安装VSCode
根据提示进行安装安装C/C++编程语言支持


安装C/C++编程语言支持(C/C++ for Visual Studio Code)

微软的C/C++扩展**提供了对Visual Studio Code的C/C++支持,以便在Windows,Linux和macOS上使用VS Code进行C和C++开发。Note: C++ Intellisense也可以使用,根据个人喜欢选择
可以在VSCode内的Extension中搜索C/C++,找到目标插件后进行安装。

mac vscode运行go语言 mac使用vscode开发java_vscode c++ 提示_02

下载PostgreSQL源代码


Git下载最新PG代码


确保您的计算机上安装了Git。Git的使用帮助网上随处可见,这里就不赘述了。

$ cd sandbox $ git clone https://github.com/postgres/postgres.git $ cd postgres ## 一般更改代码都在特定的Branch上进行 $ git checkout -b FEATTURE-NAME $ EDIT YOUR CODE $ git commit -a $ git diff --patience master my-feature > ../my-feature.patch




下载对应版本的PG代码 (Optional)


 https://www.postgresql.org/ftp/source/运行VSCode


 1.打开源代码目录


 菜单 File --> Open

 打开对应的目录,比如 ~/sandbox/postgres 2.配置命令    


有许多工具来自动执行诸如linting,build,打包,测试或部署软件系统之类的任务。 比如TypeScript编译器,再比如ESLint和TSLint这样的linters以及Make,Ant,Gulp,Jake,Rake和MSBuild等build系统。

mac vscode运行go语言 mac使用vscode开发java_macos安装vscode_03

这些工具主要是通过命令行来运行的,并在内部软件开发过程(编辑,编译,测试和调试)内自动执行任务。 鉴于它们在开发生命周期中的重要性,能够运行工具并从VS Code中分析其结果非常有帮助。VSCode中的任务可以配置为运行脚本和启动进程,以便可以在VSCode中使用许多现有工具,而无需输入命令行或编写新代码。工作区或文件夹特定任务是从工作区的.vscode文件夹中的tasks.json文件配置的。
2.1 打开 View --> Command Palette
输入 Task: , 选择 Tasks: Configure Task

mac vscode运行go语言 mac使用vscode开发java_unity vscode没有智能提示_04

2.2 选择 Create tasks.json file from template

mac vscode运行go语言 mac使用vscode开发java_vscode c++ 提示_05

2.3 选择 Others Example to run the arbitrary external command

mac vscode运行go语言 mac使用vscode开发java_macos安装vscode_06

2.4 现在开始编辑 task.json 文件
到微软网站上 https://go.microsoft.com/fwlink/?LinkId=733558

查看关于 task.json 的格式文档注意  请根据个人需要编辑下面的任务配置文件

{// See https://go.microsoft.com/fwlink/?LinkId=733558// for the documentation about the tasks.json format"version": "2.0.0","presentation" : { "reveal": "always" },"tasks": [ {"label": "Configure","type": "shell","command": "./configure --enable-depend --enable-cassert --enable-debug","problemMatcher": ["$eslint-compact" ] }, {"label": "Make All","type": "shell","command": "make -j4 all","problemMatcher": ["$eslint-compact" ] }, {"label": "Make Clean All","type": "shell","command": "make clean","problemMatcher": ["$eslint-compact" ] }, {"label": "Make Install","type": "shell","command": "make install" } ]}



 3.运行所配制的命令


打开 View --> Command Palette --> Tasks: Run Task
选择对应的 Configure、Make 或者 make install 命令来进行PostgreSQL的编译等任务。

mac vscode运行go语言 mac使用vscode开发java_macos安装vscode_07

NOTE 可以配置一些快捷方式来方便工作使用VS Code调试PostgreSQL


这里以Mac环境下为例进行说明1.使用LLDB调试


LLDB是XCode下默认的调试工具,它和GDB有很多类似之处,如果你对GDB熟悉,使用LLDB不存在什么问题。这里是LLDB和GDB的一个命令对比(https://lldb.llvm.org/use/map.html)

注意 如果你的开发环境是Linux,请使用apt-get/yum 之间安装lldb在VS Code中调试PG打开lauch.json
菜单 View -> Command Palette,输入launch,选择 Debug: Open launch.json

mac vscode运行go语言 mac使用vscode开发java_mac vscode运行go语言_08

选择 C++ (GDB/LLDB 编辑launch.json文件
注意:根据你的PG环境,修改下面 "args"里面的路径

{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [ {"name": "(lldb) pg Launch","type": "cppdbg","request": "launch","program": "${workspaceFolder}/src/backend/postgres","args": ["-D", "/Users/grantzhou/pgdata/data"],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": true,"MIMode": "lldb" }, {"name": "(lldb) pg Launch help","type": "cppdbg","request": "launch","program": "${workspaceFolder}/src/backend/postgres","args": ["--help", ""],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": true,"MIMode": "lldb" }, {"name": "(lldb) Launch","type": "cppdbg","request": "attach","program": "${workspaceFolder}/src/backend/postgres","MIMode": "lldb" } ]}


 开始调试


1.  打开调试选项卡(或者     F5)   

mac vscode运行go语言 mac使用vscode开发java_unity vscode没有智能提示_09

2.   调试
当调试会话开始后,     上面会出现调试工具栏.

mac vscode运行go语言 mac使用vscode开发java_mac vscode运行go语言_10

    Continue/Pause F5

    Step     Over F10

    Step Into F11

    Step     Out ⇧F11

    Restart ⇧⌘F5

    Stop ⇧F52.使用GDB调试 (Mac上不推荐使用)

注意:在最新版的Mac上,gdb 最新版本8.2的安装和执行非常的繁琐,并且存在很多无法工作且需要降级到8.0版本的情况,这里不推荐使用。MAC上安装GDB

与GCC一样,安装GDB的最简单方法是通过Homebrew。 在终端窗口中,运行命令 brew install gdb,并等待它完成。注意:我们需要对GDB可执行文件进行代码签名,从而可以根据调试器的需要控制其他进程。对gdb进行代码签名
在Keychain中创建一个新证书

1.  打开     Keychain     Access 程序

2.  菜单选择     Certificate     Assistant --> Create a Certificate

    a. 确保Identity     Type设置为Self     Signed Root

    b. 将证书类型更改为代码签名

    c.     选中“覆盖默认值”复选框

mac vscode运行go语言 mac使用vscode开发java_unity vscode没有智能提示_11

    d. 选择 “Continue” (在弹出提示中再次单击继续)。

    e. 在下一个页面
    Security Number : 1,
    Validity Period : 3650 (最长 20 年)

mac vscode运行go语言 mac使用vscode开发java_view如何接受json_12

    f. 点击继续

mac vscode运行go语言 mac使用vscode开发java_unity vscode没有智能提示_13

     g. 一直继续,直到让你选择保存位置。选择System

mac vscode运行go语言 mac使用vscode开发java_vscode c++ 提示_14

     h. 根据提示输入密码,Done
3.  回到 Keychain Access 主窗口,选择左侧边栏中的System keychain,然后从列表中选择新创建的证书,右键选择     Get     Info并设置为永远信任。

mac vscode运行go语言 mac使用vscode开发java_unity vscode没有智能提示_15

mac vscode运行go语言 mac使用vscode开发java_vscode c++ 提示_16

 签名


1. 重新启动Taskgate  access-control服务使用Activity Monitor服务)

mac vscode运行go语言 mac使用vscode开发java_unity vscode没有智能提示_17

 
2. 点击Quit,并等待其退出,并重新显示在Activity     Monitor中     (最多等待一到两分钟)
3. 签名完成调试签名问题


codesign -fs gdbcert /usr/local/bin/gdbRestart your mac and enablecsrutil enable --without debugsudo killall taskgated# Monitor logslog stream --predicate 'process == "taskgated" OR (process == "kernel" AND eventMessage CONTAINS "macOSTaskPolicy")' --info



其他


1. PostgreSQL后端主流程,初次PG开发人员建议多看一下 
    https://www.postgresql.org/developer/backend2.Wiki.postgresql.org的开发人员部分  (如何进行代码贡献)   
    https://wiki.postgresql.org/wiki/Developer_and_Contributor_Resources
3. 新手从这里开始
    https://wiki.postgresql.org/wiki/So,_you_want_to_be_a_developer%3F常用VS Code功能


内置快捷键参考Windows系统
    https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdfLinux系统
    https://code.visualstudio.com/shortcuts/keyboard-shortcuts-linux.pdfMac系统 
    https://code.visualstudio.com/shortcuts/keyboard-shortcuts-macos.pdf配置自定义快捷键


VSCode提供了很多定制功能包括快捷键的定制。
注意:如果您安装了许多扩展程序或者已经自定义了键盘快捷键,则有时会出现键绑定冲突,其中相同的键盘快捷键映射到多个命令。 这可能会导致一些奇怪的现象,比如当您在编辑器中切换文件时,时常会导致进入和超出当前编辑范围的问题
 File > Preferences > Keyboard Shortcuts (Windows)
 Code > Preferences > Keyboard Shortcuts (MacOS)结束语