Entwicklertagebuch in Visual Studio Code führen

VSCode Journal - Erster Eintrag
Mein erster Eintrag im Tagebuch

Seit sieben Jahren dokumentiere ich meine Entwicklertätigkeiten in einem Tagebuch im Texteditor Visual Studio Code. Dazu benutze das Plugin vscode-journal. Mit der Tastenkombination Command-Shift-J legt mir dieses Plugin eine neue Textdatei im Markdown-Format mit folgender Namensstruktur an:

/.../Text/2024/11/10.md

Das heisst das Plugin erstellt automatisch Verzeichnisse für das Jahr und den Monat, benennt die Datei nach dem aktuellen Tag und öffnet sie im Editor.

Der Inhalt des Entwicklertagebuchs hat sich über die Jahre ausgeweitet:

  • Berufliche und private Programmiertätigkeiten, Systemkonfiguration
  • Kurzfristige Todo-Listen und was als Nächstes ansteht
  • Konzeptionelles, Dokumentations- und Mailentwürfe
  • Private Tätigkeiten (Administrative Arbeiten, Wohnungsunterhalt, Veloreparaturen, Hobbys, Sport, Rätselparcours etc.)
  • Soziales (Treffen, Feste, Mittagessen etc.)

Was sich als besonders wertvoll erwiesen hat: Eine „Nächste Schritte“-Notiz bei privaten Projekten. Wenn ich ein solches Projekt nach Monaten oder gar Jahren wieder in die Finger nehme, bin ich froh über Anhaltspunkte darüber was ich als Nächstes geplant hatte.

Parallel dazu führe ich im /Text-Verzeichnis eine Sammlung von Textdokumenten, PDFs und Bildern als persönliche Wissensdatenbank in einer möglichst flachen Verzeichnisstruktur.

Alle fünf Minuten wird das ganze Verzeichnis via Git automatisch zu GitHub in ein privates Repository commited. Dazu wird aus der lokalen crontab folgendes Skript aufgerufen:

#!/usr/bin/env bash

cd "$(dirname "$0")" || exit

/usr/bin/git add -A
/usr/bin/git commit -m "Autocommit."
/usr/bin/git push

Ich benutze dieses System nur auf einem Computer, deshalb benötige ich nur eine Einweg-Synchronisation. Bei meinen externen Mandaten richte ich mir normalweise ein separates Repository in der internen Codeverwaltung ein.

Der grösste Vorteil ist meiner Meinung nach die Einfachheit der Datenspeicherung: Es handeln sich zum grössten Teil um einfach Textdateien. Keine proprietäre Formate, diese Dateien werden immer lesbar bleiben.

Ein Nachteil hat meine einfache Lösung, besonders im Umfeld des Wissensmanagements: Als einzige Recherchemöglichkeit steht die Volltextsuche zur Verfügung. Was ich mit dieser Suche nicht finde, ist verloren. (Habe ich jetzt den Ausdruck „Aare.guru“ oder „Aare Guru“ oder „Aareguru“ verwendet?) Das System würde zwar Verknüpfungen zwischen Dateien unterstützen, aber nur rudimentär.

Als Alternative empfiehlt sich ein spezialisiertes System wie Obsidian. Dieses speichert (Soweit ich weiss) auch alles als reine Textdateien und bietet Mehr-Weg-Synchronization.

Ich bleibe für den Moment bei vscode-journal. Für eine ausführliche Reflexion über Entwicklertagebücher kann ich diesen Stackoverflow-Blogpost empfehlen.

Visual Studio Code-Extension: Marktplatzseite aktualisieren

Um die Informationsseite einer selbst entwickelten Extension im Marktplatz von Visual Studio Code zu aktualisieren, ohne eine neue Version publizieren zu müssen, kannst du einfach die bestehende Version mit

vsce package

neu packen. Nicht vsce publish ausführen, da dies die Versionsnummer automatisch erhöht.

Danach das Packet im Marketplace Manager erneut hinaufladen. Nach einigen Minuten wird die Informationsseite aktualisiert sein.

(Ich habe das benutzt um meine eigene Extension zum Wohle der neuen GitLab Workflow-Extension einzustampfen.)

Backslash unter macOS in Visual Studio Code eingeben mit installierter Git Lens

Das exzellente Git-Blame-Plugin Git Lens für meinen neuen Lieblingseditor Visual Studio Code überschreibt die Tastenkombination Shift-Alt-7 für den Backslash (\) auf der deutschen Tastaturbelegung in macOS.

Zur Behebung das Keybinding auf dem Kommando gitlens.showCommitSearch löschen.

(Menu Tastenkombinationen, Rechtsklick auf das störende Binding und Entfernen wählen.)

GitLab CI YAML Validator Extension für Visual Studio Code

Direkter Link zum Extension-Marketplace.

In dem Titel steckt einige Technologie, ich entpacke mal:

  • GitLab ist die Open Source-Versionskontrollsoftware welche wir im Geschäft sowie ich persönlich einsetze, für allen Code welcher nicht auf GitHub passt.
  • GitLab verfügt über ein Continuous Integration-System namens GitLab CI.
  • Das CI-System wird mit einer YAML-Datei konfiguriert.
  • Um YAML zu schreiben musst du ein paar wichtige syntaktische Details beachten (Korrekte Einrückung, keine Tabs, Unterschied zwischen Listen und Dictionaries etc.)
  • Ein intelligenter Texteditor wie Visual Studio Code* unterstützt dich dabei.
  • Und meine Extension GitLab CI YAML Validator überprüft dein YAML nicht nur auf Syntaxfehler, sondern auch inhaltlich auf dessen Korrektheit als GitLab CI YAML-Konfiguration

Das ist meine erste Extension welche ich mit Ach und Krach zusammengeschrieben habe. Das Debugging von Extensions in Visual Studio Code ist zwar einfach, aber weder bin ich mit TypeScript vertraut noch ist die Entwickler-Dokumentation über alle Zweifel erhaben.

Schlussendlich habe ich mich auf eine minimale Extension beschränkt: Auf Kommando wird das YAML validiert und die Auswertung in einem halb-modalen Dialog angezeigt.

Weitere Features wie automatische Überprüfung nach dem Speichern und einer Statusanzeige sind naheliegend, aber müssen warten bis der Leidensdruck für mich gross genug wird. Im Moment ist die Extension gut genug.

Wünsche und Feedback schickst du am einfachsten direkt in den Issuetracker.

* = Visual Studio Code hat bis auf den Namen nichts mit der Entwicklungsumgebung Visual Studio zu tun. Und dem Umstand, dass es von Microsoft kommt. Aber dafür nichts kostet und Open Source ist. Ja, ich habe soeben Microsoft und Open Source ohne Ironie im gleichen Absatz geschrieben.