From c9a13afbe8d46bc1a981e902f006f4470bd3e931 Mon Sep 17 00:00:00 2001 From: Oier Bravo Urtasun Date: Sun, 7 Sep 2025 02:50:17 +0200 Subject: [PATCH] compile before symlink --- install-extension.sh | 45 +++++++++++++++++++++++++ vscode-extension-ashes/.nvmrc | 1 + vscode-extension-ashes/INSTALL.md | 55 +++++++++++++++++++++++++++---- 3 files changed, 94 insertions(+), 7 deletions(-) create mode 100644 vscode-extension-ashes/.nvmrc diff --git a/install-extension.sh b/install-extension.sh index 8fa23908..53bb2105 100755 --- a/install-extension.sh +++ b/install-extension.sh @@ -130,6 +130,51 @@ main() { echo print_info "Installing extension..." + # Compile the extension before creating symlink + print_info "Compiling extension..." + cd "$EXTENSION_SOURCE" || { + print_error "Failed to change to extension directory: $EXTENSION_SOURCE" + exit 1 + } + + # Check if nvm is available and use it if .nvmrc exists + if [ -f ".nvmrc" ] && command -v nvm &> /dev/null; then + print_info "Using nvm to set Node.js version from .nvmrc" + source ~/.nvm/nvm.sh + nvm use || { + print_warning "Failed to use nvm, continuing with system Node.js" + } + elif [ -f ".nvmrc" ] && [ -s "$NVM_DIR/nvm.sh" ]; then + print_info "Loading nvm and using Node.js version from .nvmrc" + source "$NVM_DIR/nvm.sh" + nvm use || { + print_warning "Failed to use nvm, continuing with system Node.js" + } + fi + + # Install dependencies if node_modules doesn't exist + if [ ! -d "node_modules" ]; then + print_info "Installing npm dependencies..." + npm install || { + print_error "Failed to install npm dependencies" + exit 1 + } + else + print_info "Dependencies already installed, skipping npm install" + fi + + # Compile TypeScript + print_info "Compiling TypeScript..." + npm run compile || { + print_error "Failed to compile TypeScript" + exit 1 + } + + print_success "Extension compiled successfully!" + + # Return to original directory + cd - > /dev/null + # Check if destination already exists if [ -e "$EXTENSION_DEST" ]; then print_warning "Destination already exists: $EXTENSION_DEST" diff --git a/vscode-extension-ashes/.nvmrc b/vscode-extension-ashes/.nvmrc new file mode 100644 index 00000000..92f279e3 --- /dev/null +++ b/vscode-extension-ashes/.nvmrc @@ -0,0 +1 @@ +v22 \ No newline at end of file diff --git a/vscode-extension-ashes/INSTALL.md b/vscode-extension-ashes/INSTALL.md index 34389c14..38952889 100644 --- a/vscode-extension-ashes/INSTALL.md +++ b/vscode-extension-ashes/INSTALL.md @@ -2,16 +2,45 @@ ## Quick Installation -1. **Copy the extension folder** to your VS Code extensions directory: +### Automated Installation (Recommended) + +Use the provided installation script for the easiest setup: + +```bash +./install-extension.sh +``` + +This script will: +1. **Compile the extension** using npm and the correct Node.js version (via nvm if available) +2. **Create a symlink** to your VS Code extensions directory +3. **Handle dependencies** automatically + +### Manual Installation + +1. **Compile the extension**: + ```bash + cd vscode-extension-ashes + + # Use nvm if available (recommended) + nvm use # Uses version from .nvmrc + + # Install dependencies + npm install + + # Compile TypeScript + npm run compile + ``` + +2. **Copy the extension folder** to your VS Code extensions directory: - **Linux**: `~/.vscode/extensions/` - **macOS**: `~/.vscode/extensions/` - **Windows**: `%USERPROFILE%\.vscode\extensions\` -2. **Rename the folder** to `ashes-language-support-0.1.0` (or similar) +3. **Rename the folder** to `ashes-language-support-0.1.0` (or similar) -3. **Reload VS Code** or restart the application +4. **Reload VS Code** or restart the application -4. **Test the extension** by opening any `.esc` file +5. **Test the extension** by opening any `.esc` file ## Alternative Installation (Development Mode) @@ -27,17 +56,23 @@ ## Building from Source -1. **Install dependencies**: +1. **Set up Node.js version** (recommended): + ```bash + # Use nvm if available to get the correct Node.js version + nvm use # Uses version from .nvmrc (v22) + ``` + +2. **Install dependencies**: ```bash npm install ``` -2. **Compile TypeScript**: +3. **Compile TypeScript**: ```bash npm run compile ``` -3. **Package the extension** (optional): +4. **Package the extension** (optional): ```bash npx vsce package ``` @@ -79,6 +114,12 @@ - Press `Ctrl+Space` to manually trigger completion - Check that the extension is activated (should show in the Extensions panel) +### Compilation errors +- Make sure you're using the correct Node.js version: `nvm use` (uses v22 from .nvmrc) +- Clear node_modules and reinstall: `rm -rf node_modules && npm install` +- Check that TypeScript is installed: `npm list typescript` +- Ensure all dependencies are installed: `npm install` + ## Uninstalling Simply delete the extension folder from your VS Code extensions directory and restart VS Code.