우선은 dotnet sdk를 설치 해야 한다.
dotnet 5.0 까지는 brew를 통해 설치하기가 많이 애매 했지만 6.0대로 가면서 brew를 통해 설치가 가능하다.
일단 brew를 설치한다.
1 |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
brew로 dotnet sdk 를 설치 한다.
1 |
brew install --cask dotnet-sdk |
그리고 vscode를 설치한다
1 |
brew install --cask visual-studio-code |
vscode에서 dotnet 개발을 하기 위한 확장을 설치한다.
- .NET Core Add Reference
- .NET Core Snippet Pack
- .NET Install Tool for Extension Authors
- ASP.NET Core Switcher
- ASP.NET Helper
- Auto Close Tag
- Auto Fold
- Auto Rename Tag
- Auto-Using for C#
- Bookmarks
- Bootstrap 5 Snippets
- C#
- C# Namespace Autocompletion
- C# Snippets
- C# XML Documentation Comments
- Change Language Mods
- Code Spell Checker
- colorize
- CSS Flexbox Cheatsheet
- CSS Peek
- Error Lens
- Font Awesome Auto-complete & Preview
- Git History
- GitIgnore
- GitLens – Git supercharged
- Highlight Matching Tag
- HTML (C#)
- HTML CSS Support
- HTML End Tag Labels
- Image preview
- indent-rainbow
- IntelliCode
- IntelliSense for CSS class names in HTML
- JQuery Code Snippets
- jshint
- LibMan Tools
- Live Server
- Markdown All in One
- Nuget Package Manager
- Output Colorizer
- Svg Preview
- SVN
- Todo Tree
그외 dotnet 하고는 상관 없을지 모르지만 기타 필요한 확장들이 조금 더 있다.
- Vim
- Zoom Bar
- file-size
- google-search
- Material Icon Theme
깔아야 하는 확장이 생각보다 많다.
그런데 이렇게 확장을 깔고 각종 javascript 라이브러리들을 추가 하고 나면 vscode가 맞나 싶을 정도로 느려지기 시작한다.
여기서 우리는 환경 설정에서 exclude 설정을 잘 해야 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 |
{ "emmet.triggerExpansionOnTab": true, "emmet.includeLanguages": { "razor": "html", "aspnetcorerazor": "html", "asp": "html", }, "git.enableSmartCommit": true, "git.autofetch": true, "git.confirmSync": false, "svn.delete.ignoredRulesForDeletedFiles": [ ".vscode" ], "svn.experimental.detect_encoding": true, "editor.fontFamily": "D2Coding Ligature", "editor.renderWhitespace": "all", "editor.insertSpaces": false, "editor.formatOnType": false, "editor.fontLigatures": true, "editor.wordBasedSuggestions": true, "editor.acceptSuggestionOnCommitCharacter": true, "editor.minimap.enabled": false, "editor.linkedEditing": true, "editor.showFoldingControls": "always", "editor.wordSeparators": "/\\()\"':,.;<>~!@#$%^&*|+=[]{}`?-", "editor.detectIndentation": false, "editor.quickSuggestionsDelay": 1, "editor.bracketPairColorization.enabled": true, "editor.guides.bracketPairs": "active", "editor.cursorSmoothCaretAnimation": true, "editor.suggestSelection": "first", "editor.suggestOnTriggerCharacters": true, "editor.quickSuggestions": { "comments": "on", "strings": "on", "other": "on" }, "debug.onTaskErrors": "abort", "debug.toolBarLocation": "docked", "workbench.list.smoothScrolling": true, "workbench.tree.indent": 20, "workbench.tree.renderIndentGuides": "always", "workbench.settings.editor": "json", "workbench.editor.enablePreview": false, "workbench.editor.enablePreviewFromQuickOpen": false, "workbench.startupEditor": "newUntitledFile", "vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue", "search.followSymlinks": false, "search.exclude": { "**/.DS_Store": true, "**/.git": true, "**/.idea": true, "**/.svn": true, "**/.vscode": false, "**/.zip": true, "**/*.min.js": true, "**/*.xcodeproj": true, "**/*.xcworkspace": true, "**/bower_components": true, "**/build": true, "**/class": true, "**/coverage": true, "**/locks": true, "**/logs": true, "**/Migrations": true, "**/node_modules": true, "**/Pods": true, "**/tmp": true, "**/venv": true, "**/wwwroot/lib": true, "**/yarn.lock": true }, "files.encoding": "utf8bom", "files.autoGuessEncoding": true, "files.exclude": { "**/node_modules": true, "**/bower_components": true, "**/.zip": true, "**/.git": true, "**/.svn": true, "**/.DS_Store": true, "**/.idea": true, "**/.vscode": false, "**/logs": true, "**/locks": true, "**/class": true, "**/tmp": true }, "files.watcherExclude": { "**/.git/objects/**": true, "**/node_modules/**": true, "**/node_modules/*/**": true, "**/wwwroot/lib/**": true }, "files.associations": { "*.emProject": "xml" }, "gitlens.currentLine.enabled": false, "gitlens.advanced.messages": { "suppressImproperWorkspaceCasingWarning": true }, "fontAwesomeAutocomplete.patterns": [ "**/*.cshtml" ], "fontAwesomeAutocomplete.disableTriggerWordAutoClearPatterns": [ "**/*.cshtml" ], "todo-tree.highlights.defaultHighlight": { "opacity": 50, "gutterIcon": true }, "todo-tree.highlights.customHighlight": { "FIXME": { "icon": "bug", "iconColour": "red", "foreground": "white", "background": "red" }, "WARN": { "icon": "alert", "iconColour": "orange", "foreground": "orange", "background": "white" }, "TODO": { "icon": "check", "iconColour": "green", "foreground": "green", "background": "white" }, "REVIEW": { "icon": "eye", "iconColour": "lightblue", "foreground": "black", "background": "cyan" } }, "todo-tree.general.tags": [ "FIXME", "WARN", "TODO", "REVIEW" ], "liveServer.settings.donotShowInfoMsg": true, "gitHistory.showFileHistorySplit": false, "docomment.syntax": "single", "docomment.activateOnEnter": false, "autofold.pack": false, "autofold.types": [ { "ext": ".js", "level": 2 }, { "ext": ".cs", "level": 3 } ], "[javascript]": { "editor.defaultFormatter": "vscode.typescript-language-features" }, "[jsonc]": { "editor.defaultFormatter": "vscode.json-language-features" }, "javascript.suggestionActions.enabled": false, "typescript.suggestionActions.enabled": false, "html.autoClosingTags": true, "editor.formatOnSave": true, "colorize.exclude": [ "**/wwwroot/lib", "**/.git", "**/.svn", "**/.hg", "**/CVS", "**/.DS_Store", "**/.git", "**/node_modules", "**/bower_components", "**/tmp", "**/dist", "**/tests" ], "todo-tree.filtering.excludeGlobs": [ "**/node_modules", "**/wwwroot/lib" ], "html-css-class-completion.excludeGlobPattern": "**/*.min.*", "html.format.templating": true, "[html]": { "editor.defaultFormatter": "vscode.html-language-features" }, "html.format.wrapLineLength": 120, "editor.rulers": [ 120 ], } |
많은 개인적인 설정을 덜어내기는 했지만 dotnet으로 개발하는데 필요한 옵션들을 대부분 추가했고 특히 속도때문에 exclude 해야 하는 부분들을 포함해봤다.
특히 위에 setting.json을 보면 exclude 하는 경로중에 **/wwwroot/lib 라는 경로가 있는데 이는 내가 libman 을 통해 javascript 라이브러리를 wwwroot/lib 아래에 위치하게 하기 때문이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
{ "version": "1.0", "defaultProvider": "unpkg", "libraries": [ { "library": "@fortawesome/fontawesome-free@latest", "destination": "wwwroot/lib/_fortawesome" }, { "library": "tinymce@latest", "destination": "wwwroot/lib/tinymce" } ] } |
Leave a Reply