Clocking Timer

Description
Clocking Timer is a VS Code extension that helps you track how much time you spend on your projects. It offers features such as automatic timer start/stop, Pomodoro mode, task categorization, session tagging, idle detection, local data storage, and data synchronization capabilities.
Cette extension VSCode permet de suivre le temps passé sur un projet. Elle offre des fonctionnalités telles que le démarrage/arrêt automatique du timer, l'affichage du temps total passé et la synchronisation des données avec un tableau de bord web.
Installation
To install the extension, go to the VSCode Marketplace and click "Install".
Pour installer l'extension, accédez au VSCode Marketplace et cliquez sur "Installer", ou recherchez Clocking Timer
directement dans l'onglet Extensions de VS Code.
Getting Started / Prise en main
- Status Bar: After installation, you'll see several items in the VS Code status bar:
- Left Side: Total time tracked for the current project (
Total: Hh Mm Ss
).
- Right Side:
- Start/Stop Button (
$(clock) Start Timer
/ $(clock) Stop Timer
): Manually control the timer.
- Current Session Timer (
Timer: Hh Mm Ss
or Pomodoro Phase Work: MM:SS
/ Break: MM:SS
).
- Current Category (
$(symbol-key) CategoryName
): Click to change the category for the current/next session.
- Current Tags (
$(tag) Count
): Shows the number of tags applied. Click to view/manage tags.
- Current Task (
$(symbol-field) TaskName
or (None)
): Shows the specific task set for the current session. Click to set/change the task.
- Daily Goal (
$(target)
or $(check-all)
): Shows progress towards your daily time goal (if enabled). (UI currently pending)
- Sync Status (
$(cloud)
or $(sync~spin)
): Shows pending sync items or sync activity. Click to sync manually.
- Basic Tracking:
- Click
$(clock) Start Timer
to begin tracking.
- Click
$(symbol-key) CategoryName
to select a category for the session.
- Click
$(symbol-field) TaskName
or use the command Clocking Timer: Set Current Task Name
to specify the task you're working on.
- Use the Command Palette (
Ctrl+Shift+P
or Cmd+Shift+P
) and type Clocking Timer: Add Tag
to add tags (e.g., "feature-xyz", "bugfix").
- Click
$(clock) Stop Timer
to end the session. The time (including category, task name, and tags) will be saved locally.
- Pomodoro Mode:
- Enable Pomodoro in VS Code Settings (
Clocking Timer
> Pomodoro
> Enable
).
- Configure work/break durations as needed.
- Use the Start/Stop button or commands (
Start Pomodoro Cycle
, Pause/Resume Pomodoro
, etc.) to manage cycles.
- Idle Detection:
- Enable Idle Detection in VS Code Settings (
Clocking Timer
> Idle Detection
> Enable
).
- Set the
Threshold Minutes
for inactivity.
- If enabled, the timer (in regular mode) will pause automatically after the specified period of inactivity. Activity resets the idle countdown.
- Data Storage & Sync:
- Time data is stored locally in an SQLite database.
- Synchronization with a backend (if configured) happens automatically or manually via the
Synchronize Data Now
command or by clicking the sync status icon. (Note: Sync requires separate backend setup).
- Dashboard & Data Visualization:
- Access the time tracking dashboard using the command
Clocking Timer: Show Time Tracking Dashboard
or the keyboard shortcut Ctrl+Alt+T D
(Windows/Linux) or Cmd+Alt+T D
(Mac).
- View your time data with charts and statistics, filter by time range, and export data in CSV or JSON format.
Features / Fonctionnalités
- Project Hierarchy / Hiérarchie de Projets: Organize your time tracking with hierarchical projects and tasks.
Organisez votre suivi de temps avec des projets et tâches hiérarchiques.
- Manual & Automatic Timer / Timer Manuel & Automatique: Start/stop manually or let it track based on editor activity (configurable).
Démarrez/arrêtez manuellement ou laissez-le suivre en fonction de l'activité de l'éditeur (configurable).
- Pomodoro Timer / Mode Pomodoro: Work in focused bursts with configurable work/break cycles.
Travaillez par sessions concentrées avec des cycles travail/pause configurables.
- Task Name Tracking / Suivi Nom de Tâche: Set a specific task name for each session for more granular tracking.
Définissez un nom de tâche spécifique pour chaque session pour un suivi plus granulaire.
- Task Categorization / Catégorisation des Tâches: Assign categories (e.g., Development, Debugging) to your time sessions.
Assignez des catégories (ex: Développement, Débogage) à vos sessions de temps.
- Session Tagging / Étiquetage des Sessions: Add multiple tags (e.g., "feature-xyz", "bugfix") to sessions for detailed analysis.
Ajoutez plusieurs étiquettes (ex: "feature-xyz", "bugfix") aux sessions pour une analyse détaillée.
- Idle Detection / Détection d'Inactivité: Automatically pauses the timer (regular mode) after a configurable period of inactivity.
Met automatiquement en pause le timer (mode normal) après une période d'inactivité configurable.
- Daily Time Goal / Objectif Quotidien: Set a daily total time goal and track your progress (UI display pending).
Définissez un objectif de temps total quotidien et suivez votre progression (affichage UI en attente).
- Status Bar Integration / Intégration Barre d'État: View total time, session time, category, tag count, current task, and control the timer directly from the status bar.
Visualisez le temps total, le temps de session, la catégorie, le nombre d'étiquettes, la tâche actuelle et contrôlez le timer directement depuis la barre d'état.
- Local SQLite Storage / Stockage SQLite Local: Time data is stored reliably in a local database file.
Les données de temps sont stockées de manière fiable dans un fichier de base de données local.
- Data Synchronization / Synchronisation des Données: Improved sync logic sends new data incrementally and retries failed attempts. (Requires backend setup).
Logique de synchronisation améliorée qui envoie les nouvelles données de manière incrémentielle et réessaie les tentatives échouées. (Nécessite une configuration backend).
- Multi-language Support / Support Multilingue: Available in English and French (auto-detected).
Disponible en anglais et en français (auto-détecté).
- Keyboard Shortcuts / Raccourcis Clavier: Default shortcuts for common actions.
Raccourcis par défaut pour les actions courantes.
- Improved Error Handling / Gestion d'Erreurs Améliorée: More specific error types for better diagnostics.
Types d'erreurs plus spécifiques pour de meilleurs diagnostics.
- Code Documentation / Documentation du Code: Added JSDoc comments throughout the codebase.
Ajout de commentaires JSDoc dans l'ensemble du code source.
- Unit/Integration Tests / Tests Unitaires/Intégration: Initial test suites for core components.
Suites de tests initiales pour les composants principaux.
- Database Backups / Sauvegardes de Base de Données: Automatic and manual database backups with restore capabilities.
Sauvegardes automatiques et manuelles de la base de données avec possibilité de restauration.
- Dashboard & Data Visualization / Tableau de Bord & Visualisation de Données: Interactive dashboard with charts, filters, and export options.
Tableau de bord interactif avec graphiques, filtres et options d'exportation.
Commands / Commandes
(Accessible via the Command Palette - Ctrl+Shift+P
or Cmd+Shift+P
)
(Accessibles via la Palette de Commandes - Ctrl+Shift+P
ou Cmd+Shift+P
)
Clocking Timer: Timer
- Toggle the timer on/off (Démarre/Arrête le timer)
Clocking Timer: Reset Timer
- Reset the current session timer (Réinitialise le timer de session)
Clocking Timer: Generate Token
- Generate an authentication token (Génère un jeton d'authentification)
Clocking Timer: Show Tokens
- Show stored authentication tokens (Affiche les jetons stockés)
Clocking Timer: Synchronize Data Now
- Manually synchronize data (Synchronise manuellement les données)
Clocking Timer: Create Backup Now
- Create a database backup manually (Crée une sauvegarde de la base de données manuellement)
Clocking Timer: Restore From Backup
- Restore data from a previous backup (Restaure les données à partir d'une sauvegarde précédente)
Clocking Timer: Manage Backups
- View and manage existing backups (Affiche et gère les sauvegardes existantes)
Clocking Timer: Set Current Task Category
- Choose a category for the current/next session (Choisit une catégorie pour la session actuelle/prochaine)
Clocking Timer: Add Tag to Current Session
- Add a tag to the current session (Ajoute une étiquette à la session actuelle)
Clocking Timer: Remove Tag from Current Session
- Remove a tag from the current session (Supprime une étiquette de la session actuelle)
Clocking Timer: Show Tags for Current Session
- Show tags applied to the current session (Affiche les étiquettes de la session actuelle)
Clocking Timer: Start Pomodoro Cycle
- Start a Pomodoro cycle (Démarre un cycle Pomodoro)
Clocking Timer: Pause/Resume Pomodoro
- Pause or resume the current Pomodoro phase (Met en pause ou reprend la phase Pomodoro actuelle)
Clocking Timer: Skip Pomodoro Phase
- Skip the current Pomodoro work/break phase (Passe la phase travail/pause Pomodoro actuelle)
Clocking Timer: Stop Pomodoro Cycle
- Stop the current Pomodoro cycle (Arrête le cycle Pomodoro actuel)
Clocking Timer: Set Current Task Name
- Set or clear the specific task name for the current/next session (Définit ou efface le nom de tâche spécifique pour la session actuelle/prochaine)
Clocking Timer: Select Project/Task
- Navigate, create, and select projects/tasks in the hierarchy (Navigue, crée et sélectionne des projets/tâches dans la hiérarchie)
Clocking Timer: Show Time Tracking Dashboard
- Open the interactive dashboard to view and analyze your time data (Ouvre le tableau de bord interactif pour visualiser et analyser vos données de temps)
Configuration / Configuration
(Accessible via VS Code Settings - File > Preferences > Settings
, search for "Clocking Timer")
(Accessible via les Paramètres VS Code - Fichier > Préférences > Paramètres
, recherchez "Clocking Timer")
clockingTimer.enableAutoTracking
: Enable/disable automatic time tracking (default: true
)
clockingTimer.trackedProjects
: List of workspace folder names to track (default: []
= all projects)
clockingTimer.taskCategories
: List of categories available for selection (default: ["Development", "Debugging", ...]
)
clockingTimer.pomodoro.enable
: Enable Pomodoro mode (default: false
)
clockingTimer.pomodoro.workDuration
: Duration of a Pomodoro work session in minutes (default: 25
)
clockingTimer.pomodoro.shortBreakDuration
: Duration of a short break in minutes (default: 5
)
clockingTimer.pomodoro.longBreakDuration
: Duration of a long break in minutes (default: 15
)
clockingTimer.pomodoro.cyclesBeforeLongBreak
: Number of work cycles before a long break (default: 4
)
clockingTimer.pomodoro.autoStartNextSession
: Automatically start the next work/break session (default: true
)
clockingTimer.idleDetection.enable
: Enable automatic pausing after inactivity (default: false
)
clockingTimer.idleDetection.thresholdMinutes
: Inactivity duration in minutes before pausing (default: 5
)
clockingTimer.goals.enableDailyGoal
: Enable the daily total time goal (default: false
)
clockingTimer.goals.dailyGoalHours
: Target total tracked hours per day (default: 8
)
clockingTimer.backup.enable
: Enable automatic database backups (default: true
)
clockingTimer.backup.intervalHours
: How often to create automatic backups in hours (default: 24
)
clockingTimer.backup.maxBackups
: Maximum number of backups to keep (default: 5
)
Contributing / Contribuer
Contributions are always welcome! Please fork the repo and create a pull request with your changes.
Les contributions sont toujours les bienvenues ! Veuillez forker le repo et créer une pull request avec vos modifications.
Support and Feedback / Support et Feedback
For any questions or suggestions, open an issue on GitHub.
Pour toute question ou suggestion, ouvrez une issue sur GitHub.
Authors and Acknowledgments / Auteurs et Remerciements
Created by Belouar-Pruvot Mathis
Créé par Belouar-Pruvot Mathis
License / Licence
This project is licensed under the MIT License. See the LICENSE file for details.
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
Keyboard Shortcuts / Raccourcis Clavier (Defaults)
- Toggle Timer:
Ctrl+Alt+T T
(Windows/Linux), Cmd+Alt+T T
(Mac)
- Set Current Task:
Ctrl+Alt+T K
(Windows/Linux), Cmd+Alt+T K
(Mac)
- Set Category:
Ctrl+Alt+T C
(Windows/Linux), Cmd+Alt+T C
(Mac)
- Show Dashboard:
Ctrl+Alt+T D
(Windows/Linux), Cmd+Alt+T D
(Mac)
(You can customize these in VS Code's Keyboard Shortcuts settings)
(Vous pouvez personnaliser ceux-ci dans les paramètres des Raccourcis Clavier de VS Code)