vscode snippet 工程模板文件分享

2.3 自定义自己使用的代码片段

刷leetcode应该会很有用,比如引入一些链表node或者是图的定义等等。

比如写ROS的RVIZ输出的时候,能够有一个标准的代码片段的标准输出很有用。

比如写旋转矩阵或者类似的东西的时候

这里可以创建两种snippets的配置文件,第一种是global的全局snippets配置文件,适合一些注释等所有语言都适用的情况?

我主要是使用了第二种,针对某一种语言创建snippets配置文件

这里我主要为C++程序和Python程序创建了Code Snippet文件,我将我的代码文件template分享:

首先是Python的template模板(python.json文件)

Python 复制代码
{
	// Place your snippets for python here. Each snippet is defined under a snippet name and has a prefix, body and 
	// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
	// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the 
	// same ids are connected.
	// Example:
	// "Print to console": {
	// 	"prefix": "log",
	// 	"body": [
	// 		"console.log('$1');",
	// 		"$2"
	// 	],
	// 	"description": "Log output to console"
	// }
	"prefixs for leetcode": {
		"prefix": "prefix for leetcode",
		"body": [
			"from typing import List",
			"from queue import Queue",
		],
		"description": "prefix for leetcode"
	},
	"main for leetcode": {
		"prefix": "main for leetcode",
		"body": [
			"if __name__ == \"__main__\":",
			"    solution = Solution()",
			"    grid = [['1','1','0','0','0'],",
			"            ['1','1','0','0','0'],",
			"            ['0','0','1','0','0'],",
			"            ['0','0','0','1','1']]",
			"    result = solution.numIslands(grid)",
			"    print(f\"result = {result}\")",
			" ",
		],
		"description": "main for leetcode"
	},
	"bfs template": {
		"prefix": "bfs template",
		"body": [
			"def bfs(_grid: List[List[str]], _visited: List[List[bool]], _i: int, _j: int):",
			"    dirs = [[-1, 0], [1, 0], [0, -1], [0, 1]]",
			"    que = Queue(0) # 0意味着初始化无线长度的queue",
			"    que.put([_i, _j])",
			"    _visited[_i][_j] = True",
			"    while not que.empty():",
			"        cur = que.get()",
			"        curx = cur[0]",
			"        cury = cur[1]",
			"        for n in range(4):",
			"            nextx = curx+dirs[n][0]",
			"            nexty = cury+dirs[n][1]",
			"            if(nextx < 0 or nextx >= len(_grid) or",
			"                nexty < 0 or nexty >= len(_grid[0])):",
			"                continue",
			"            if(_visited[nextx][nexty] is False and _grid[nextx][nexty] == '1'):",
			"                que.put([nextx, nexty])",
			"                _visited[nextx][nexty] = True",
		],
		"description": "bfs template"
	}

}

其次是C++的template模板(cpp.json文件)

cpp 复制代码
{
	// Place your snippets for cpp here. Each snippet is defined under a snippet name and has a prefix, body and 
	// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
	// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the 
	// same ids are connected.
	// Example:
	// "Print to console": {
	// 	"prefix": "log",
	// 	"body": [
	// 		"console.log('$1');",
	// 		"$2"
	// 	],
	// 	"description": "Log output to console"
	// }
	"sort algorithm with lambda": {
		"prefix": "sort_lambda",
		"body": [
			"std::vector<int> v;",
			"\/\/ 需要对v从大到小排列",
			"sort(v.begin(), v.end(),[](int a, int b){return a>b;});"
		],
		"description": "Log output to console"
	},
	"prefixs for leetcode": {
		"prefix": "prefix for leetcode",
		"body": [
			"#include <algorithm>",
			"#include <iostream>",
			"#include <unordered_set>",
			"#include <vector>",
			"#include <math.h>",
			"#include <limits.h>",
			"using namespace std;",
			"struct TreeNode {",
			"   int val;",
			"   TreeNode *left;",
			"   TreeNode *right;",
			"   TreeNode() : val(0), left(nullptr), right(nullptr) {}",
			"   TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}",
			"   TreeNode(int x, TreeNode *left, TreeNode *right)",
			"       : val(x), left(left), right(right) {}",
			"};",
		],
		"description": "prefix for leetcode"
	},
	"main for leetcode": {
		"prefix": "main for leetcode",
		"body": [
			"int main() {",
			"   // 示例二叉树",
			"   Solution solution;",
			"   vector<int> nums = {7, 1, 5, 3, 6, 4};",
			"   int result = solution.maxProfit(nums);",
			"   std::cout << \"result: \" << result << std::endl;",
			"}",
		],
		"description": "main for leetcode"
	}
}
相关推荐
开发游戏的老王8 小时前
虚幻引擎入门教程:虚幻编辑器的基本操作
编辑器·游戏引擎·虚幻
techdashen11 小时前
圆桌讨论:Coding Agent or AI IDE 的现状和未来发展
ide·人工智能
止观止12 小时前
如何开发 VSCode 内置扩展:从零开始构建最简扩展
ide·vscode·编辑器
CHH321313 小时前
在 Mac/linux 的 VSCode 中使用Remote-SSH远程连接 Windows
linux·windows·vscode·macos
楚韵天工14 小时前
宠物服务平台(程序+文档)
java·网络·数据库·spring cloud·编辑器·intellij-idea·宠物
呱呱巨基15 小时前
vim编辑器
linux·笔记·学习·编辑器·vim
Aevget18 小时前
「Java EE开发指南」用MyEclipse开发的EJB开发工具(二)
java·ide·java-ee·eclipse·myeclipse
AI视觉网奇20 小时前
pycharm 默认终端设置 cmd
ide·python·pycharm
ii_best20 小时前
IOS/ 安卓开发工具按键精灵Sys.GetAppList 函数使用指南:轻松获取设备已安装 APP 列表
android·开发语言·ios·编辑器
yudiandian20141 天前
03 Eclipse 配置 JDK 环境
java·ide·eclipse