Skip to content

Commit e128ea3

Browse files
committed
v1.7.0
1 parent 587eaca commit e128ea3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+14383
-222
lines changed

.clineignore

Lines changed: 0 additions & 50 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,27 @@
11
# Changelog
2-
Toutes les modifications notables de l’extension **Vitte Language Support** seront documentées ici.
3-
Le format est basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.0.0/),
2+
Toutes les modifications notables de l’extension **Vitte Language Support** seront documentées ici.
3+
Le format est basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.0.0/),
44
et cette extension suit le versioning [SemVer](https://semver.org/lang/fr/).
55

6+
---
7+
8+
## [1.7.0] — 2025-11-02
9+
### Ajouté
10+
- ⚙️ **Commandes LSP complètes** (`vitte.formatDocument`, `vitte.organizeImports`, `vitte.fixAll`) intégrées côté client et serveur, avec application automatique des `TextEdit`.
11+
- 🧠 **Linter étendu** avec nouvelles règles (`mixedIndent`, `blankLines`, `nonAscii`, `finalNewline`) et génération automatique de *Quick Fixes* LSP.
12+
- 🪶 **Formatteur amélioré** : support du formatage de plage (`rangeFormatting`), calcul d’*edits minimaux* et normalisation d’indentation avant exécution.
13+
- 🔍 **Indexeur LSP** : reconnaissance des blocs `impl`, gestion robuste des commentaires et chaînes imbriquées, et ajout d’une API `reindexWorkspace()`.
14+
15+
### Modifié
16+
- 🧰 `languageFacts.ts` refondu : classification complète des mots-clés, types, opérateurs et littéraux pour la complétion et les semantic tokens.
17+
- 💡 `commands.ts` désormais branché directement au serveur via requêtes `vitte/*` (plus de stubs manuels).
18+
- 🚀 Meilleure cohérence entre les diagnostics, la complétion et le formatteur (tous fondés sur le même ensemble de règles).
19+
20+
### Corrigé
21+
- 🐞 Correction des erreurs TypeScript (`Thenable.catch`, `TextDocumentSyncKind` dupliqué, import manquant `languageService`).
22+
- 🔧 Réécriture des handlers LSP (`onCodeAction`, `onDocumentFormatting`, `onDocumentRangeFormatting`) pour éviter les remplacements globaux inutiles et améliorer les performances.
23+
24+
625
---
726

827
## [1.6.0] — 2025-10-21

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
[![Marketplace](https://img.shields.io/badge/VS%20Code-Install-blue)](https://marketplace.visualstudio.com/manage)
44
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
5-
![VS Code Engine](https://img.shields.io/badge/engine-%5E1.93.0-lightgrey)
5+
![VS Code Engine](https://img.shields.io/badge/engine-%5E1.105.0-lightgrey)
6+
![VS Code Version](https://img.shields.io/visual-studio-marketplace/v/VitteStudio.vitte-studio?label=VS%20Code)
67
![Status](https://img.shields.io/badge/status-active-brightgreen)
78

89
Professional tooling for the Vitte/Vitl language family: language server, debugger, diagnostics view, snippets, and icon theme—packaged as a single Visual Studio Code extension.

media/docs.css

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
2+
3+
:root {
4+
--pad: 12px;
5+
--radius: 8px;
6+
--gap: 10px;
7+
--shadow: 0 1px 2px rgba(0,0,0,.06);
8+
}
9+
10+
html, body { height: 100%; }
11+
body {
12+
font: 13px/1.5 -apple-system, Segoe UI, system-ui, sans-serif;
13+
padding: 0; margin: 0;
14+
color: var(--vscode-foreground);
15+
background: var(--vscode-editor-background);
16+
}
17+
18+
header {
19+
position: sticky; top: 0; z-index: 10;
20+
backdrop-filter: blur(8px);
21+
background: color-mix(in srgb, var(--vscode-editor-background) 92%, transparent);
22+
border-bottom: 1px solid var(--vscode-panel-border);
23+
padding: 10px var(--pad);
24+
display: grid; grid-template-columns: 1fr auto; gap: var(--gap);
25+
align-items: center;
26+
}
27+
28+
#q { flex: 1; padding: 8px 10px; border: 1px solid var(--vscode-input-border);
29+
background: var(--vscode-input-background); color: var(--vscode-input-foreground);
30+
border-radius: 6px; }
31+
32+
.controls { display:flex; flex-wrap: wrap; gap:8px; align-items:center; }
33+
.btn { padding:6px 10px; border-radius:6px; border:1px solid var(--vscode-button-border, transparent);
34+
background: var(--vscode-button-secondaryBackground); color: var(--vscode-button-secondaryForeground);
35+
cursor:pointer; box-shadow: var(--shadow); }
36+
.btn.primary { background: var(--vscode-button-background); color: var(--vscode-button-foreground); }
37+
.btn.ghost { background: transparent; border-color: var(--vscode-panel-border); }
38+
.btn[disabled] { opacity: .6; cursor: not-allowed; }
39+
40+
.select, select { height: 30px; border-radius:6px; border:1px solid var(--vscode-input-border);
41+
background: var(--vscode-dropdown-background); color: var(--vscode-dropdown-foreground); padding: 4px 8px; }
42+
43+
.badge { font-size: 11px; padding: 2px 6px; border-radius: 999px; border:1px solid var(--vscode-panel-border); color: var(--vscode-descriptionForeground); }
44+
45+
.controls .sep { width:1px; height:18px; background: var(--vscode-panel-border); }
46+
47+
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: var(--gap); padding: var(--pad); }
48+
49+
.card { border: 1px solid var(--vscode-panel-border); border-radius: var(--radius); padding: 10px; background: var(--vscode-editor-background); box-shadow: var(--shadow); display:flex; flex-direction:column; gap:6px; }
50+
.card .title { font-weight: 600; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
51+
.card .path { color: var(--vscode-descriptionForeground); font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
52+
.card .excerpt { color: var(--vscode-foreground); opacity:.85; font-size: 12px; line-height: 1.4; max-height: 5.6em; overflow: hidden; }
53+
.card .row { display:flex; gap:8px; }
54+
55+
mark { background: color-mix(in srgb, gold 35%, transparent); padding: 0 2px; border-radius: 3px; }
56+
57+
.links { padding: 0 var(--pad) var(--pad); display:flex; gap:10px; flex-wrap: wrap; }
58+
.link { text-decoration: none; border:1px solid var(--vscode-panel-border); padding:6px 10px; border-radius: 999px; color: var(--vscode-textLink-foreground); }
59+
.link:hover { background: color-mix(in srgb, var(--vscode-textLink-foreground) 12%, transparent); }
60+
61+
footer { position: sticky; bottom: 0; background: var(--vscode-editor-background); border-top: 1px solid var(--vscode-panel-border); display:flex; justify-content: space-between; align-items:center; padding: 8px var(--pad); }
62+
.muted { color: var(--vscode-descriptionForeground); font-size: 12px; }
63+
.right { display:flex; gap: 8px; }
64+
65+
.empty { padding: 30px; text-align: center; color: var(--vscode-descriptionForeground); }
66+
.spinner { width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--vscode-descriptionForeground); border-top-color: transparent; display:inline-block; animation: spin 1s linear infinite; vertical-align: -2px; }
67+
@keyframes spin { to { transform: rotate(360deg); } }
68+
69+
.list .grid { grid-template-columns: 1fr; }
70+
.list .card { flex-direction: row; align-items: center; justify-content: space-between; }
71+
.list .card .excerpt { display:none; }
72+
73+
@media (max-width: 640px) {
74+
header { grid-template-columns: 1fr; }
75+
.controls { flex-wrap: wrap; }
76+
}

media/docs.html

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
<!DOCTYPE html>
2+
<html lang="fr">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<meta http-equiv="Content-Security-Policy" content="{{csp}}">
6+
<meta name="viewport" content="width=device-width, initial-scale=1" />
7+
<title>Vitte • Documentation locale</title>
8+
<link rel="stylesheet" href="{{styleUri}}" />
9+
</head>
10+
<body>
11+
<header role="banner" aria-label="Barre d’outils">
12+
<input id="q" type="search" placeholder="Rechercher dans les fichiers .md locaux…" aria-label="Rechercher" />
13+
<div class="controls" role="group" aria-label="Contrôles de navigation et d’affichage">
14+
<button id="prev" class="btn" title="Précédent (Alt+←)" aria-label="Page précédente"></button>
15+
<button id="next" class="btn" title="Suivant (Alt+→)" aria-label="Page suivante"></button>
16+
<span class="sep" aria-hidden="true"></span>
17+
<button id="toggleView" class="btn ghost" title="Basculer grille/liste" aria-pressed="false">≣ Liste</button>
18+
<label class="select" for="sort" aria-label="Trier par">Trier&nbsp;:</label>
19+
<select id="sort" aria-label="Trier par">
20+
<option value="relevance">Pertinence</option>
21+
<option value="title">Titre (A→Z)</option>
22+
<option value="path">Chemin (A→Z)</option>
23+
</select>
24+
<label class="select" for="includeContent" title="Inclure le contenu dans la recherche">
25+
<input id="includeContent" type="checkbox" checked /> Contenu
26+
</label>
27+
<span class="sep" aria-hidden="true"></span>
28+
<button id="reload" class="btn" title="Recharger l’index">⟳ Recharger</button>
29+
<button id="openFolder" class="btn primary" title="Ouvrir le dossier de docs">📂 Ouvrir dossier</button>
30+
<span class="badge" id="badgeVer"></span>
31+
</div>
32+
<div class="meta">
33+
<span class="muted" id="count" aria-live="polite"></span>
34+
</div>
35+
</header>
36+
37+
<nav class="links" aria-label="Raccourcis">
38+
<a class="link" href="#" data-href="https://github.com/vitte-lang/vitte/wiki">Wiki Vitte</a>
39+
<a class="link" href="#" data-href="https://docs.rs/vitte">Documentation crates (docs.rs)</a>
40+
<a class="link" href="#" data-href="https://vitte-lang.github.io/">Site officiel</a>
41+
<a class="link" href="#" data-href="https://github.com/vitte-lang/vitte/issues">Signaler un bug</a>
42+
</nav>
43+
44+
<main id="main" role="main">
45+
<section id="facets" class="facets" aria-label="Filtres">
46+
<details>
47+
<summary>Filtres avancés</summary>
48+
<div class="facet-grid">
49+
<label><input type="checkbox" id="f-md" checked /> Fichiers .md</label>
50+
<label><input type="checkbox" id="f-readme" /> README seulement</label>
51+
<label><input type="checkbox" id="f-path-docs" /> Dans /docs</label>
52+
<label><input type="checkbox" id="f-path-wiki" /> Dans /wiki</label>
53+
</div>
54+
</details>
55+
</section>
56+
57+
<section id="grid" class="grid" aria-label="Résultats"></section>
58+
59+
<section id="empty" class="empty" hidden>
60+
<p>Aucun résultat. Essayez un autre terme, changez le tri ou activez la recherche dans le contenu.</p>
61+
</section>
62+
</main>
63+
64+
<footer role="contentinfo">
65+
<span class="muted" id="status" aria-live="polite"></span>
66+
<div class="right">
67+
<span class="muted">Raccourcis&nbsp;: Alt+←/→ (pages), Ctrl/Cmd+F (focus recherche)</span>
68+
</div>
69+
</footer>
70+
71+
<dialog id="help" aria-label="Aide" hidden>
72+
<h3>Raccourcis</h3>
73+
<ul>
74+
<li><kbd>Alt</kbd>+<kbd></kbd> / <kbd>Alt</kbd>+<kbd></kbd> : paginer</li>
75+
<li><kbd>Ctrl/Cmd</kbd>+<kbd>F</kbd> : focus barre de recherche</li>
76+
<li><kbd>Entrée</kbd> : relancer la recherche</li>
77+
</ul>
78+
<form method="dialog"><button class="btn">Fermer</button></form>
79+
</dialog>
80+
81+
<script nonce="{{nonce}}" src="{{scriptUri}}"></script>
82+
</body>
83+
</html>

0 commit comments

Comments
 (0)