Visual Studio Code

IDE pro práci s Pythonem, ale i řadou dalších jazyků a technologií, ke stažení zde. Obsahuje synchronizaci nastavení, extenzí a dalších skrze účet Microsoft (školní, či Outlook.com ) nebo GitHub. Veškerá nastavení se ukládají do JSON souborů a lze je tak snadno sdílet a modifikovat.

Podporuje vytváření profilů pro různé druhy práce. Je vhodné si rovnou vytvořit speciální profil pro různé technologie (např. Python).

Užitečné klávesové zkratky

  • F1 - paleta nástrojů - zde se vyhledávají příkazy VS Code

Nastavení, pro zkopírování do příslušných JSON souborů

Většina nastavení má dvě úrovně. Globální – uložené v uživatelském profilu a lokální – uložené v projektu ve složce .vscode. Lokální přepisují globální. Pomocí lokálních nastavení lze upravovat specifické chování projektu.

Klávesové zkratky

  • v paletě nástrojů vyhledat Keyboard Shortcuts (JSON)
{
    {
        "key": "ctrl+d",
        "command": "editor.action.duplicateSelection"
    },
    {
        "key": "ctrl+shift+c",
        "command": "editor.action.commentLine",
        "when": "editorTextFocus && !editorReadonly"
    },
    {
        "key": "f5",
        "command": "python.execInTerminal-icon"
    },
    {
        "key": "shift+f5",
        "command": "debugpy.debugInTerminal"
    },
}

Uživatelská nastavení

  • v paletě nástrojů buď
    • User Settings (JSON) - globální
    • Workspace Settings (JSON) - lokální
  • uvádíme pouze části JSONu

VS Code nastavení

    // nastavení pro vzhled a chování editoru
    "workbench.colorTheme": "Default Dark Modern",
    "workbench.startupEditor": "none",
    "workbench.editor.enablePreview": false,
    // nastavení výchozí terminálu ve Windows na command prompt - často nesprávně vybírá powershell
    "terminal.integrated.defaultProfile.windows": "Command Prompt",
    // nastavení pro průzkumníka - potvrzení před smazáním souborů a přesouváním
    "explorer.confirmDelete": false,
    "explorer.confirmDragAndDrop": false,
    // nastavení pro editor - - upravy souborů
    "editor.suggestSelection": "first",
    "editor.bracketPairColorization.enabled": true,
    "editor.guides.bracketPairs": "active",
    "editor.stickyScroll.enabled": true,
    "editor.formatOnSave": true,

Python úprava kódu

    "[python]": {
        "editor.codeActionsOnSave": {
            "source.organizeImports": "explicit"
        },
        "editor.formatOnSave": true,
        "editor.defaultFormatter": "ms-python.black-formatter",
        "editor.codeActionsOnSave": {
            "source.organizeImports": "explicit"
        },
    }
     // nastavení pro notebooky - formátování, organizace importů a další úpravy při ukládání
    "notebook.formatOnSave.enabled": true,
    "notebook.defaultFormatter": "ms-python.black-formatter",
    "notebook.codeActionsOnSave": {
        "source.organizeImports": "explicit",
    },

Python extenze

    "flake8.args": [
        "--max-line-length",
        "120"
    ],
    "isort.args": [
        "--profile",
        "black",
        "--line-width",
        "120"
    ],
    "black-formatter.args": [
        "--line-length",
        "120"
    ],
    "pylint.args": [
        "--disable=E0611",
        "--max-line-length=120"
    ],

Vynechání složek např. při prohledávání souborů

    "files.exclude": {
        "**/__pycache__": true,
        "**/.classpath": true,
        "**/.factorypath": true,
        "**/.project": true,
        "**/.settings": true,
        "**/.mypy_cache": true,
        "**/.pytest_cache": true,
    },

Extenze

  • extenze lze instalovat buď globálně do uživatelského profilu a nebo uložit do souboru .vscode/extensions.json ve složce projektu, tyto extenze pak budou dostupné specificky pro daný projekt

Doporučené extenze pro VS Code

V závorce uvádíme id extenze, pomocí kterého je též možné vyhledávat.

  • GitHub Copilot (GitHub.copilot) - umělá inteligence pro psaní kódu
  • Czech - Code Spell Checker (streetsidesoftware.code-spell-checker-czech) - český slovník pro kontroly pravopisu, pokud bude část textů v češtině
  • SVG (jock.svg) - zobrazování a úpravy SVG souborů
  • Todo Highlight (wayou.vscode-todo-highlight) - zvýraznění TODO a podobných komentářů
  • YAML (redhat.vscode-yaml) - podpora YAML formátu
  • Markdown All in One (yzhang.markdown-all-in-one) - podpora Markdown formátu
  • markdownlint (DavidAnson.vscode-markdownlint) - kontrola Markdown formátu
{
    // List of extensions which should be recommended for users of this workspace.
    "recommendations": [
        // github copilot
        "GitHub.copilot-chat",
        // kontrola pravopisu pro češtinu
        "streetsidesoftware.code-spell-checker-czech",
        // práce s SVG grafikou 
        "jock.svg",
        // zvýraznění TODO, FIXME a dalších poznámek v kódu
        "wayou.vscode-todo-highlight",
        // podpora pro práci s YAML soubory
        "redhat.vscode-yaml",
        // podpora pro práci s Markdown soubory (*.md) jako jsou README.md
        "yzhang.markdown-all-in-one",
        "DavidAnson.vscode-markdownlint",
    ],
    // List of extensions recommended by VS Code that should not be recommended for users of this workspace.
    "unwantedRecommendations": [
    ]
}

Doporučené extenze pro Python

  • některé extenze vyžadují konkrétní Pythonové balíčky - viz definice Conda environmentu u předmětu PGIS2
  • níže následuje seznam doporučených extenzí pro Python
{
    // List of extensions which should be recommended for users of this workspace.
    "recommendations": [
        // nezbytné extenze pro Python 
        "ms-python.python",
        "ms-python.debugpy",
        // formátování Python kódu 
        "ms-python.black-formatter",
        "ms-python.isort",
        // kontroly kvality kódu a typů pro Python
        "ms-python.vscode-pylance",
        "ms-python.autopep8",
        "ms-python.flake8",
        "ms-python.mypy-type-checker",
        "ms-python.pylint",
    ],
    // List of extensions recommended by VS Code that should not be recommended for users of this workspace.
    "unwantedRecommendations": [
    ]
}

Nastavení projektů využívajících QGIS Python API na Windows

Viz informace u OSGEO4W.

Doporučená struktura projektu

Projekt
├── .vscode
│   ├── extensions.json
│   ├── settings.json
├── data
│   ├── saved
|   |   ├── vytvoreny_soubor.pripona      
│   ├── datove_soubory.pripona
| 01_priklad.py
| 02_priklad.py
| utils.py