# Socle applicatif — `core_ide/` (Lapce) Le répertoire **`core_ide/`** à la racine du clone `smart_ide` contient le **clone Git** de l’éditeur [Lapce](https://lapce.dev/) (amont public [lapce/lapce](https://github.com/lapce/lapce), Apache-2.0). C’est le **socle applicatif** visé pour l’IDE : build, extensions et personnalisations 4NK s’appuient sur cet arbre. - Le contenu de **`core_ide/`** est **exclu de l’index Git** du dépôt parent (`.gitignore` à la racine) pour limiter la taille du monorepo ; il reste présent localement ou sur la machine de build. - Ce document est la **référence versionnée** pour l’emplacement et la mise à jour du clone (le dépôt Lapce amont fournit son propre `README.md` à la racine du clone). ## Mettre à jour les sources amont Sans créer de dépôt produit 4NK sur GitHub : conserver `origin` pointant vers l’URL publique de Lapce (ou un remote `upstream` si besoin), puis tirer les branches nécessaires : ```bash cd core_ide git fetch origin git merge origin/master ``` (Remplacer `master` par la branche par défaut du dépôt amont si elle change.) ### Historique complet (clone shallow) Si le clone a été fait avec `--depth 1` : ```bash cd core_ide git fetch --unshallow ``` ### Build Suivre la documentation amont Lapce (workspace Rust à la racine de `core_ide/`). Le binaire produit alimente la couche **editor-shell** décrite dans [system-architecture.md](./system-architecture.md). ### Premier checkout ```bash cd /chemin/vers/smart_ide git clone https://github.com/lapce/lapce.git core_ide ``` (Ou l’URL / remote interne retenu par l’équipe ; SSH si configuré.) Alternative (recommandé) : utiliser le script de dépôt, qui vérifie aussi les remotes : ```bash ./scripts/ensure-core-ide.sh ``` ## Patches Smart IDE (Lapce) Le dossier `core_ide/` est ignoré par Git côté monorepo. Les modifications Smart IDE appliquées à Lapce sont donc **versionnées sous forme de patches** dans : - `patches/lapce/` (fichiers `*.patch` + liste ordonnée `series`) Scripts associés : - `./scripts/core-ide-apply-patches.sh` : applique `patches/lapce/series` sur `core_ide/` - `./scripts/core-ide-export-patches.sh` : exporte les commits `core_ide` (base..HEAD) vers `patches/lapce/*.patch` et régénère `series` ### Migration depuis l’ancien emplacement Si un clone Lapce existait sous `forks/lapce/`, le renommer une fois : ```bash mv forks/lapce core_ide rmdir forks 2>/dev/null || true ```