add vscode installation and config (fix #2)
This commit is contained in:
parent
5b133da522
commit
a44b7ddd1c
20
README.md
20
README.md
|
@ -16,9 +16,17 @@ Role Variables
|
||||||
|
|
||||||
This role uses the apt package manager on Debian based hosts.
|
This role uses the apt package manager on Debian based hosts.
|
||||||
But for some operating systems the `ansible_os_family` variable is not set to "Debian" by the fact gathering even if it is Debian based (like Mendel GNU/Linux on the Google Coral Dev Board).
|
But for some operating systems the `ansible_os_family` variable is not set to "Debian" by the fact gathering even if it is Debian based (like Mendel GNU/Linux on the Google Coral Dev Board).
|
||||||
|
|
||||||
- `override_os_family`: Set to "Debian" in the host inventory, if `ansible_os_family` is not set correctly
|
- `override_os_family`: Set to "Debian" in the host inventory, if `ansible_os_family` is not set correctly
|
||||||
|
|
||||||
|
The User Setup will change the user shell and global gitconfig. This can be disabled:
|
||||||
|
- `usersetup_chsh`: Boolean to disable changing the user shell to zsh
|
||||||
|
- `usersetup_gitconfig`: Boolean to disable overriding the global gitconfig
|
||||||
|
|
||||||
|
For a GUI/ Desktop machine, you can enable to install and configure VS Code:
|
||||||
|
- `user_vscode`: Boolean to install and set the basic configuration of VS Code
|
||||||
|
- `user_vscode_cpp`: Boolean to install C/C++ dev tools and configure VS Code
|
||||||
|
- `user_vscode_python`: Boolean to install Python dev tools and configure VS Code
|
||||||
|
|
||||||
|
|
||||||
Dependencies
|
Dependencies
|
||||||
------------
|
------------
|
||||||
|
@ -57,11 +65,17 @@ You can simply run the whole role:
|
||||||
name: common
|
name: common
|
||||||
tasks_from: usersettings
|
tasks_from: usersettings
|
||||||
|
|
||||||
# just for you main machine
|
# just for you main machine (not included in the role's main.yml)
|
||||||
- name: Basics - Install dotfiles
|
- name: Basics - Install user's working utilities
|
||||||
import_role:
|
import_role:
|
||||||
name: common
|
name: common
|
||||||
tasks_from: usertools
|
tasks_from: usertools
|
||||||
|
|
||||||
|
# (not included in the role's main.yml)
|
||||||
|
- name: Basics - Install and configure VS Code
|
||||||
|
import_role:
|
||||||
|
name: common
|
||||||
|
tasks_from: vscode
|
||||||
```
|
```
|
||||||
|
|
||||||
Or call the different tasks individually:
|
Or call the different tasks individually:
|
||||||
|
|
|
@ -6,3 +6,8 @@ usersetup_chsh: true
|
||||||
|
|
||||||
# override global gitconfig
|
# override global gitconfig
|
||||||
usersetup_gitconfig: true
|
usersetup_gitconfig: true
|
||||||
|
|
||||||
|
# install VS Code and selectively activate different programming languages
|
||||||
|
user_vscode: false
|
||||||
|
user_vscode_cpp: false
|
||||||
|
user_vscode_python: false
|
||||||
|
|
137
files/vscode-settings.json
Normal file
137
files/vscode-settings.json
Normal file
|
@ -0,0 +1,137 @@
|
||||||
|
{
|
||||||
|
"terminal.integrated.fontFamily": "Hack",
|
||||||
|
// "C_Cpp.clang_format_style": "{BasedOnStyle: LLVM, Language: Cpp, IndentWidth: 2, ColumnLimit: 110, BreakBeforeBraces: Attach, PointerAlignment: Left, AccessModifierOffset: -2, Cpp11BracedListStyle: true, AlignConsecutiveDeclarations: true, AlignConsecutiveAssignments: true, AlignEscapedNewlines: Left, AlignTrailingComments: true, IndentWrappedFunctionNames: false, AllowShortFunctionsOnASingleLine: Inline, SpacesBeforeTrailingComments: 2, FixNamespaceComments: true, ReflowComments: false, SortIncludes: false, SortUsingDeclarations: false}",
|
||||||
|
"C_Cpp.clang_format_style": "file",
|
||||||
|
"C_Cpp.clang_format_fallbackStyle": "{BasedOnStyle: LLVM, Language: Cpp, IndentWidth: 2, ColumnLimit: 110, BreakBeforeBraces: Attach, PointerAlignment: Left, AccessModifierOffset: -2, Cpp11BracedListStyle: true, AlignConsecutiveDeclarations: true, AlignConsecutiveAssignments: true, AlignEscapedNewlines: Left, AlignTrailingComments: true, IndentWrappedFunctionNames: false, AllowShortFunctionsOnASingleLine: Inline, SpacesBeforeTrailingComments: 2, FixNamespaceComments: true, ReflowComments: false, SortIncludes: false, SortUsingDeclarations: false}",
|
||||||
|
"C_Cpp.clang_format_path": "/usr/local/bin/clang-format",
|
||||||
|
"C_Cpp.intelliSenseEngine": "Tag Parser",
|
||||||
|
"editor.tabSize": 2,
|
||||||
|
"editor.renderWhitespace": "boundary",
|
||||||
|
"editor.minimap.enabled": false,
|
||||||
|
"editor.formatOnSave": true,
|
||||||
|
"editor.formatOnType": false,
|
||||||
|
"editor.multiCursorModifier": "ctrlCmd",
|
||||||
|
"[json]": {
|
||||||
|
"editor.tabSize": 4
|
||||||
|
},
|
||||||
|
"[python]": {
|
||||||
|
"editor.tabSize": 4
|
||||||
|
},
|
||||||
|
"[html]": {
|
||||||
|
"editor.formatOnSave": false
|
||||||
|
},
|
||||||
|
"[plaintext]": {
|
||||||
|
"editor.tabSize": 2,
|
||||||
|
"editor.formatOnSave": false
|
||||||
|
},
|
||||||
|
"[latex]": {
|
||||||
|
"editor.formatOnSave": false,
|
||||||
|
"editor.wordWrap": "on"
|
||||||
|
},
|
||||||
|
"python.linting.pylintPath": "/usr/local/bin/pylint",
|
||||||
|
"python.pythonPath": "/usr/local/bin/python3",
|
||||||
|
"window.zoomLevel": 0,
|
||||||
|
"latex-workshop.view.pdf.viewer": "tab",
|
||||||
|
"latex-workshop.latex.recipes": [
|
||||||
|
{
|
||||||
|
"name": "latexmk 🔃",
|
||||||
|
"tools": [
|
||||||
|
"latexmk"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pdflatex, biber, makeglossaries, pdflatex x2",
|
||||||
|
"tools": [
|
||||||
|
"pdflatex",
|
||||||
|
"biber",
|
||||||
|
"makeglossaries",
|
||||||
|
"pdflatex",
|
||||||
|
"pdflatex"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"latex-workshop.latex.tools": [
|
||||||
|
{
|
||||||
|
"name": "latexmk",
|
||||||
|
"command": "latexmk",
|
||||||
|
"args": [
|
||||||
|
"-synctex=1",
|
||||||
|
"-interaction=nonstopmode",
|
||||||
|
"-file-line-error",
|
||||||
|
"-pdf",
|
||||||
|
"-outdir=%OUTDIR%",
|
||||||
|
"%DOC%"
|
||||||
|
],
|
||||||
|
"env": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pdflatex",
|
||||||
|
"command": "pdflatex",
|
||||||
|
"args": [
|
||||||
|
"-synctex=1",
|
||||||
|
"-interaction=nonstopmode",
|
||||||
|
"-file-line-error",
|
||||||
|
"%DOC%"
|
||||||
|
],
|
||||||
|
"env": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "makeglossaries",
|
||||||
|
"command": "makeglossaries",
|
||||||
|
"args": [
|
||||||
|
"%DOCFILE%"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "biber",
|
||||||
|
"command": "biber",
|
||||||
|
"args": [
|
||||||
|
"%DOCFILE%"
|
||||||
|
],
|
||||||
|
"env": {}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"latex-workshop.latex.clean.fileTypes": [
|
||||||
|
"*.aux",
|
||||||
|
"*.bbl",
|
||||||
|
"*.blg",
|
||||||
|
"*.idx",
|
||||||
|
"*.ind",
|
||||||
|
"*.lof",
|
||||||
|
"*.lot",
|
||||||
|
"*.out",
|
||||||
|
"*.toc",
|
||||||
|
"*.acn",
|
||||||
|
"*.acr",
|
||||||
|
"*.alg",
|
||||||
|
"*.glg",
|
||||||
|
"*.glo",
|
||||||
|
"*.gls",
|
||||||
|
"*.ist",
|
||||||
|
"*.fls",
|
||||||
|
"*.log",
|
||||||
|
"*.fdb_latexmk",
|
||||||
|
"*.bcf",
|
||||||
|
"*.dvi",
|
||||||
|
"*.glsdefs",
|
||||||
|
"*.nlo",
|
||||||
|
"*.run.xml",
|
||||||
|
"*.slo",
|
||||||
|
"*.lol",
|
||||||
|
"*.ilg",
|
||||||
|
"*.nls",
|
||||||
|
"*.synctex.gz",
|
||||||
|
"*.slg",
|
||||||
|
"*.sls"
|
||||||
|
],
|
||||||
|
"markdown-pdf.displayHeaderFooter": false,
|
||||||
|
"markdown-pdf.margin.bottom": "1.5cm",
|
||||||
|
"markdown-pdf.margin.left": "2cm",
|
||||||
|
"markdown-pdf.margin.right": "1.5cm",
|
||||||
|
"debug.allowBreakpointsEverywhere": true,
|
||||||
|
"latex-workshop.latex.autoBuild.run": "never",
|
||||||
|
"git.confirmSync": false,
|
||||||
|
"explorer.confirmDelete": false,
|
||||||
|
"extensions.ignoreRecommendations": true,
|
||||||
|
"workbench.colorTheme": "Default Light+"
|
||||||
|
}
|
35
tasks/vscode-Archlinux.yml
Normal file
35
tasks/vscode-Archlinux.yml
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
---
|
||||||
|
# Common/VSCode: Install and Configure VS Code - ArchLinux Version
|
||||||
|
|
||||||
|
# Install Visual Studio Code and Set Basic Configuration
|
||||||
|
- name: vscode - Basics
|
||||||
|
block:
|
||||||
|
- name: vscode - Basics - Install
|
||||||
|
package:
|
||||||
|
name: "{{ packages }}"
|
||||||
|
state: present
|
||||||
|
vars:
|
||||||
|
packages:
|
||||||
|
- visual-studio-code
|
||||||
|
- name: vscode - Basics - Copy global settings
|
||||||
|
copy:
|
||||||
|
src: "{{ role_path }}/files/vscode-settings.json"
|
||||||
|
dest: ~/.config/Code/User/settings.json
|
||||||
|
when: user_vscode == true
|
||||||
|
|
||||||
|
|
||||||
|
# VS Code - C/C++ Development Tools
|
||||||
|
- name: vscode - C/C++
|
||||||
|
block:
|
||||||
|
- name: vscode - C/C++ - Install developer tools
|
||||||
|
package:
|
||||||
|
name: "{{ packages }}"
|
||||||
|
state: latest
|
||||||
|
vars:
|
||||||
|
packages:
|
||||||
|
- clang-format
|
||||||
|
when: user_vscode == true and user_vscode_cpp == true
|
||||||
|
|
||||||
|
|
||||||
|
# VS Code - Python Development Tools
|
||||||
|
# all done in vscode.yml
|
35
tasks/vscode-Darwin.yml
Normal file
35
tasks/vscode-Darwin.yml
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
---
|
||||||
|
# Common/VSCode: Install and Configure VS Code - macOS Version
|
||||||
|
|
||||||
|
# Install Visual Studio Code and Set Basic Configuration
|
||||||
|
- name: vscode - Basics
|
||||||
|
block:
|
||||||
|
- name: vscode - Basics - Install
|
||||||
|
homebrew_cask:
|
||||||
|
name: "{{ packages }}"
|
||||||
|
state: present
|
||||||
|
vars:
|
||||||
|
packages:
|
||||||
|
- visual-studio-code
|
||||||
|
- name: vscode - Basics - Copy global settings
|
||||||
|
copy:
|
||||||
|
src: "{{ role_path }}/files/vscode-settings.json"
|
||||||
|
dest: ~/Library/Application Support/Code/User/settings.json
|
||||||
|
when: user_vscode == true
|
||||||
|
|
||||||
|
|
||||||
|
# VS Code - C/C++ Development Tools
|
||||||
|
- name: vscode - C/C++
|
||||||
|
block:
|
||||||
|
- name: vscode - C/C++ - Install developer tools
|
||||||
|
homebrew:
|
||||||
|
name: "{{ packages }}"
|
||||||
|
state: latest
|
||||||
|
vars:
|
||||||
|
packages:
|
||||||
|
- clang-format
|
||||||
|
when: user_vscode == true and user_vscode_cpp == true
|
||||||
|
|
||||||
|
|
||||||
|
# VS Code - Python Development Tools
|
||||||
|
# all done in vscode.yml
|
37
tasks/vscode-Debian.yml
Normal file
37
tasks/vscode-Debian.yml
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
---
|
||||||
|
# Common/VSCode: Install and Configure VS Code - Debian Version
|
||||||
|
|
||||||
|
# Install Visual Studio Code and Set Basic Configuration
|
||||||
|
- name: vscode - Basics
|
||||||
|
block:
|
||||||
|
- name: vscode - Basics - Install
|
||||||
|
become: yes
|
||||||
|
package:
|
||||||
|
name: "{{ packages }}"
|
||||||
|
state: present
|
||||||
|
vars:
|
||||||
|
packages:
|
||||||
|
- visual-studio-code
|
||||||
|
- name: vscode - Basics - Copy global settings
|
||||||
|
copy:
|
||||||
|
src: "{{ role_path }}/files/vscode-settings.json"
|
||||||
|
dest: ~/.config/Code/User/settings.json
|
||||||
|
when: user_vscode == true
|
||||||
|
|
||||||
|
|
||||||
|
# VS Code - C/C++ Development Tools
|
||||||
|
- name: vscode - C/C++
|
||||||
|
block:
|
||||||
|
- name: vscode - C/C++ - Install developer tools
|
||||||
|
become: yes
|
||||||
|
package:
|
||||||
|
name: "{{ packages }}"
|
||||||
|
state: latest
|
||||||
|
vars:
|
||||||
|
packages:
|
||||||
|
- clang-format
|
||||||
|
when: user_vscode == true and user_vscode_cpp == true
|
||||||
|
|
||||||
|
|
||||||
|
# VS Code - Python Development Tools
|
||||||
|
# all done in vscode.yml
|
49
tasks/vscode.yml
Normal file
49
tasks/vscode.yml
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
---
|
||||||
|
# Common/VSCode: Install and Configure VS Code
|
||||||
|
|
||||||
|
- name: vscode - Install and configure VS Code
|
||||||
|
include_tasks: "{{ item }}"
|
||||||
|
with_first_found:
|
||||||
|
- "vscode-{{ ansible_distribution }}.yml"
|
||||||
|
- "vscode-{{ (override_os_family is defined) | ternary(override_os_family,ansible_os_family) }}.yml"
|
||||||
|
|
||||||
|
# Install Visual Studio Code and Set Basic Configuration
|
||||||
|
- name: vscode - Basics
|
||||||
|
block:
|
||||||
|
- name: vscode - Basics - Configure
|
||||||
|
shell: |
|
||||||
|
PATH=/usr/local/bin:$PATH
|
||||||
|
code --install-extension chiehyu.vscode-astyle
|
||||||
|
code --install-extension editorconfig
|
||||||
|
|
||||||
|
code --install-extension yzane.markdown-pdf
|
||||||
|
|
||||||
|
# code --install-extension james-yu.latex-workshop
|
||||||
|
# code --install-extension ban.spellright
|
||||||
|
when: user_vscode == true
|
||||||
|
|
||||||
|
|
||||||
|
# VS Code - C/C++ Development Tools
|
||||||
|
- name: vscode - C/C++
|
||||||
|
block:
|
||||||
|
- name: vscode - C/C++ - Configure VS Code
|
||||||
|
shell: |
|
||||||
|
PATH=/usr/local/bin:$PATH
|
||||||
|
code --install-extension ms-vscode.cpptools
|
||||||
|
when: user_vscode == true and user_vscode_cpp == true
|
||||||
|
|
||||||
|
|
||||||
|
# VS Code - Python Development Tools
|
||||||
|
- name: vscode - Python
|
||||||
|
block:
|
||||||
|
- name: vscode - Python - Install python dev packages
|
||||||
|
pip:
|
||||||
|
name:
|
||||||
|
- autopep8
|
||||||
|
- pylint
|
||||||
|
executable: /usr/local/bin/pip3
|
||||||
|
- name: vscode - Python - Configure VS Code
|
||||||
|
shell: |
|
||||||
|
PATH=/usr/local/bin:$PATH
|
||||||
|
code --install-extension ms-python.python
|
||||||
|
when: user_vscode == true and user_vscode_python == true
|
Loading…
Reference in a new issue