Search
Formátování a odsazení zdrojového kódu může výrazně zvýšit čitelnost a přehlednost zdrojového kódu. Většina textových editorů s minimální podporou programovacích jazyků umožňuje automaticky text formátovat, proto není ruční formátování nutné.
Součástí kompilátoru clang je také formátovací nástroj clang-format, který lze použít jako tzv. filtr, který zformátuje vstupní soubor dle definovaných pravidel. Nástroje lze použít napříkld s následujícími argumenty
clang
clang-format
clang-format -style="{BasedOnStyle: llvm, IndentWidth: 4, BreakBeforeBraces: Linux}"
Formátování clang-format je přímo používáno ve VS Code, kde kromě nastavení prostředí můžeme lokálně v rámci pracovního adresáře se zdrojovými soubory nastavit formátovač souborem .clang-format přímo z terminálu VS Code jako na přiloženém screenshotu.
.clang-format
Formátování příkazem clang-format můžeme využít například pro vytvoření skriptu pro formátování v editor gedit. Přímou konfiguraci editor u gedit lze realizovat například následujícím skriptem, který lze uložit do souboru setup_gedit.sh, nastavit práva pro spuštění chmod +x setup_gedit.sh a spustit např. ./setup_gedit.sh.
gedit
setup_gedit.sh
chmod +x setup_gedit.sh
./setup_gedit.sh
#!/usr/bin/env bash # This script parametrize the working environment of the Gedit editor # setup environment gsettings set org.gnome.gedit.preferences.editor display-line-numbers true gsettings set org.gnome.gedit.preferences.editor highlight-current-line true gsettings set org.gnome.gedit.preferences.editor bracket-matching true gsettings set org.gnome.gedit.preferences.editor auto-indent true gsettings set org.gnome.gedit.preferences.editor tabs-size 4 gsettings set org.gnome.gedit.preferences.editor scheme 'Classic' # allow external tools gsettings set org.gnome.gedit.plugins active-plugins "['spell', 'zeitgeistplugin', 'filebrowser', 'modelines', 'docinfo', 'time','externaltools']" # add new external tool to format code # first check if clang format is installed if [ $(dpkg-query -W -f='${Status}' clang-format* 2>/dev/null | grep -c "ok installed") -eq 0 ] then # if not -> exit echo >&2 "clang-format not installed! Exiting" exit 1 fi # otherwise get the version and add an external tool to gedit CLANG_VERSION=$(ls /usr/bin/clang-format* | grep -oE 'clang-format-[0-9]+') echo >&2 "Using $CLANG_VERSION" mkdir -p $HOME/.config/gedit/tools cd $HOME/.config/gedit/tools touch format echo "#!/bin/sh # [Gedit Tool] # Name=Format # Save-files=document # Applicability=all # Output=replace-document # Input=document # Shortcut=<Primary>b $CLANG_VERSION -style=\"{BasedOnStyle: llvm, IndentWidth: 4, BreakBeforeBraces: Linux}\"" > format chmod +x format