From 9f20e81f4d869133186205a52d61ab32305390f5 Mon Sep 17 00:00:00 2001 From: iridiumR Date: Fri, 12 Nov 2021 16:44:13 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/c_cpp_properties.json | 28 ++++++------- .vscode/settings.json | 77 +++++++++++++++++++++++++++++++++-- .vscode/tasks.json | 46 ++++++++++++--------- 3 files changed, 115 insertions(+), 36 deletions(-) diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index 9566973..df5a377 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -1,22 +1,22 @@ { "configurations": [ { - "name": "Win32", + "name": "MinGW", + "intelliSenseMode": "clang-x64", + "compilerPath": "C:/Program Files/LLVM/bin/gcc.exe", "includePath": [ - "${workspaceFolder}/**", - "C:/Project/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include", - "C:/Project/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed", - "C:/Project/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/include" + "${workspaceFolder}" ], - "defines": [ - "_DEBUG", - "UNICODE", - "_UNICODE" - ], - "compilerPath": "C:/Project/mingw64/bin/g++.exe", - "cStandard": "c17", - "cppStandard": "c++17", - "intelliSenseMode": "windows-gcc-x64" + "defines": [], + "browse": { + "path": [ + "${workspaceFolder}" + ], + "limitSymbolsToIncludedHeaders": true, + "databaseFilename": "" + }, + "cStandard": "c11", + "cppStandard": "c++17" } ], "version": 4 diff --git a/.vscode/settings.json b/.vscode/settings.json index b681993..e2e654a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,75 @@ { - "C_Cpp.errorSquiggles": "Enabled", - "files.encoding": "gb2312" -} \ No newline at end of file + "files.defaultLanguage": "cpp", // ctrl+N新建文件后默认的语言 + "editor.formatOnType": true, // 输入时就进行格式化,默认触发字符较少,分号可以触发 + "editor.snippetSuggestions": "top", // snippets代码优先显示补全 + + "code-runner.runInTerminal": true, // 设置成false会在“输出”中输出,无法输入 + "code-runner.executorMap": { + "c": "cd $dir && gcc *.c -fexec-charset=gb2312 -o $fileNameWithoutExt.exe && $dir$fileNameWithoutExt.exe", + "cpp": "cd $dir && g++ *.cpp -fexec-charset=gb2312 -o $fileNameWithoutExt.exe && $dir$fileNameWithoutExt.exe" + // "c": "cd $dir && clang $fileName -o $fileNameWithoutExt.exe -Wall -g -Og -static-libgcc -fcolor-diagnostics --target=x86_64-w64-mingw -std=c11 && $dir$fileNameWithoutExt", + // "cpp": "cd $dir && clang++ *.cpp -o $fileNameWithoutExt.exe -Wall -g -Og -static-libgcc -fcolor-diagnostics --target=x86_64-w64-mingw-g++ -std=c++17 && $dir$fileNameWithoutExt" + // "cpp": "cd $dir && clang++ *.cpp -o $fileNameWithoutExt.exe -Wall -g -Og -static-libgcc -fcolor-diagnostics --target=x86_64-w64-mingw -std=c++14 && $dir$fileNameWithoutExt" + }, // 设置code runner的命令行 + "code-runner.saveFileBeforeRun": true, // run code前保存 + "code-runner.preserveFocus": true, // 若为false,run code后光标会聚焦到终端上。如果需要频繁输入数据可设为false + "code-runner.clearPreviousOutput": false, // 每次run code前清空属于code runner的终端消息 + + "C_Cpp.clang_format_sortIncludes": true, // 格式化时调整include的顺序(按字母排序) + "C_Cpp.intelliSenseEngine": "Default", // 可以为Default或Tag Parser,后者较老,功能较简单。具体差别参考cpptools扩展文档 + "C_Cpp.errorSquiggles": "Disabled", // 因为有clang的lint,所以关掉 + "C_Cpp.autocomplete": "Disabled", // 因为有clang的补全,所以关掉 + + "clang.cflags": [ // 控制c语言静态检测的参数 + "--target=x86_64-w64-mingw", + "-std=c11", + "-Wall" + ], + "clang.cxxflags": [ // 控制c++静态检测时的参数 + "--target=x86_64-w64-mingw", + "-std=c++17", + "-Wall" + ], + "clang.completion.enable": true, + "files.associations": { + "iostream": "cpp", + "string": "cpp", + "array": "cpp", + "atomic": "cpp", + "*.tcc": "cpp", + "cctype": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "deque": "cpp", + "unordered_map": "cpp", + "vector": "cpp", + "exception": "cpp", + "algorithm": "cpp", + "memory": "cpp", + "memory_resource": "cpp", + "optional": "cpp", + "string_view": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "fstream": "cpp", + "initializer_list": "cpp", + "iosfwd": "cpp", + "istream": "cpp", + "limits": "cpp", + "new": "cpp", + "ostream": "cpp", + "sstream": "cpp", + "stdexcept": "cpp", + "streambuf": "cpp", + "typeinfo": "cpp" + } // 效果效果比cpptools要好 +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 4f8aa03..5ddc66e 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -1,25 +1,33 @@ +// https://code.visualstudio.com/docs/editor/tasks { + "version": "2.0.0", "tasks": [ { - "type": "cppbuild", - "label": "Compile", - "command": "g++", + "label": "Compile", // 任务名称,与launch.json的preLaunchTask相对应 + "command": "clang++", // 要使用的编译器 "args": [ - "${fileDirname}\\*.cpp", - "-g", - // "-fexec-charset=gb2312", - "-o", - "${fileDirname}\\${fileBasenameNoExtension}.exe" - ], - "options": { - "cwd": "C:/Project/mingw64/bin" + "${file}", + "-o", // 指定输出文件名,不加该参数则默认输出a.exe + "${fileDirname}/${fileBasenameNoExtension}.exe", + "-g", // 生成和调试有关的信息 + "-Wall", // 开启额外警告 + "-static-libgcc", // 静态链接 + "-fcolor-diagnostics", + "--target=x86_64-w64-mingw", // 默认target为msvc,不加这一条就会找不到头文件 + "-std=c++17" // C语言最新标准为c11,或根据自己的需要进行修改 + ], // 编译命令参数 + "type": "shell", + "group": { + "kind": "build", + "isDefault": true // 设为false可做到一个tasks.json配置多个编译指令,需要自己修改本文件,我这里不多提 }, - "problemMatcher": [ - "$gcc" - ], - "group": "build", - "detail": "编译器: C:/Project/mingw64/bin/g++.exe" + "presentation": { + "echo": true, + "reveal": "always", // 在“终端”中显示编译信息的策略,可以为always,silent,never。具体参见VSC的文档 + "focus": false, // 设为true后可以使执行task时焦点聚集在终端,但对编译c和c++来说,设为true没有意义 + "panel": "shared" // 不同的文件的编译信息共享一个终端面板 + } + // "problemMatcher":"$gcc" // 如果你不使用clang,去掉前面的注释符,并在上一条之后加个逗号。照着我的教程做的不需要改(也可以把这行删去) } - ], - "version": "2.0.0" -} \ No newline at end of file + ] +}