Skip to content

🔴 CRITICAL: iec61131-definitions/ may not ship in .vsix package #39

@michaeldistel

Description

@michaeldistel

Problem

iec61131-definitions/ folder contains runtime definition files (TON.st, CTU.st, etc.) that MUST ship in the .vsix package for member access navigation to work. However, webpack bundling may not include these files.

Evidence

  • Comment in package.json line 39: "iec61131-definitions folder is required at runtime"
  • .vscodeignore has comment "DO NOT EXCLUDE" for this folder
  • Webpack config bundles only TS files, not .st definition files
  • No explicit copy step for iec61131-definitions/ in build process
  • Member access provider navigates to these files (member-access-provider.ts)

Impact

In production (.vsix installed by users):

  • Go to definition for TON.IN, TON.PT fails
  • Member navigation broken for all standard FBs
  • Hover tooltips may fail
  • Critical feature degradation

Works in development because files exist in source tree

Fix Required

Add CopyWebpackPlugin to webpack.config.js:

const CopyPlugin = require('copy-webpack-plugin');

module.exports = {
  // ... existing config
  plugins: [
    new CopyPlugin({
      patterns: [
        { from: 'iec61131-definitions', to: 'iec61131-definitions' }
      ]
    })
  ]
}

Installation

npm install --save-dev copy-webpack-plugin

Verification Steps

  1. Add CopyWebpackPlugin configuration
  2. Run npm run compile
  3. Run vsce package
  4. Extract .vsix (it's a ZIP file)
  5. Verify extension/iec61131-definitions/ exists with all .st files
  6. Install packaged .vsix in clean VS Code
  7. Test "Go to Definition" on TON.IN, CTU.CU, etc.

Files Affected

  • webpack.config.js - Add CopyPlugin
  • package.json - Add copy-webpack-plugin devDependency

Acceptance Criteria

  • copy-webpack-plugin installed
  • webpack.config.js configured
  • vsce package includes iec61131-definitions/
  • Member navigation works in packaged extension
  • .vsix file size still reasonable (<5MB)

Priority

CRITICAL - Blocks production release, core feature broken

Related

  • Member access provider depends on these files
  • Part of LSP server functionality

Metadata

Metadata

Assignees

No one assigned

    Labels

    Priority: CriticalBlocks release - must fix immediatelybugSomething isn't workinglspLanguage Server Protocol related

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions