vscode snippet 工程模板文件分享
2.3 自定义自己使用的代码片段
刷leetcode应该会很有用,比如引入一些链表node或者是图的定义等等。
比如写ROS的RVIZ输出的时候,能够有一个标准的代码片段的标准输出很有用。
比如写旋转矩阵或者类似的东西的时候
这里可以创建两种snippets的配置文件,第一种是global的全局snippets配置文件,适合一些注释等所有语言都适用的情况?
我主要是使用了第二种,针对某一种语言创建snippets配置文件
这里我主要为C++程序和Python程序创建了Code Snippet文件,我将我的代码文件template分享:
首先是Python的template模板(python.json文件)
{// 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文件)
{// 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"}
}