{"_id":"@crewlm/gherkin-lsp","_rev":"3-bede5d2e02d6022bb74ae41380a93beb","name":"@crewlm/gherkin-lsp","dist-tags":{"latest":"0.1.0"},"versions":{"0.0.1":{"name":"@crewlm/gherkin-lsp","version":"0.0.1","keywords":["cucumber","gherkin","lsp"],"author":{"name":"Cucumber Limited","email":"cukes@googlegroups.com"},"license":"MIT","_id":"@crewlm/gherkin-lsp@0.0.1","maintainers":[{"name":"monostop","email":"viktor.forsman@gmail.com"}],"contributors":[{"name":"Aslak Hellesøy","email":"aslak.hellesoy@gmail.com"},{"name":"Aurélien Reeves","email":"aurelien.reeves@smartbear.com"},{"name":"Binh Duc Tran","email":"binhtran432k@gmail.com"},{"name":"Kieran Ryan","email":"kierankilkenny@gmail.com"},{"name":"William Boman","email":"william@redwill.se"}],"homepage":"https://github.com/crewlm/gherkin-lsp#readme","bugs":{"url":"https://github.com/crewlm/gherkin-lsp/issues"},"bin":{"gherkin-lsp":"bin/gherkin-lsp.cjs"},"dist":{"shasum":"37259aa98b9c250e12accccff66d8cf9be9d3f20","tarball":"https://registry.npmjs.org/@crewlm/gherkin-lsp/-/gherkin-lsp-0.0.1.tgz","fileCount":127,"integrity":"sha512-81bLXBDfSqGdprXEpO0xgUGGoCXHIiQwvUF57tW0XddS3aMWZ72QF0yrOKrc+UP4fMAxifXQSsbHq/v4IgbRxw==","signatures":[{"sig":"MEYCIQDDEED+55AxE1x+F9KLWx6IPpAhsAlV+T93Bs2Gm30G/gIhAO8smV4h4krca7p5kU7epkKccIU1ZGYfWeogcaDKCRCT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160170},"main":"dist/cjs/src/index.js","type":"module","types":"dist/esm/src/index.d.ts","module":"dist/esm/src/index.js","engines":{"node":">=16.0.0"},"exports":{".":{"import":"./dist/esm/src/index.js","require":"./dist/cjs/src/index.js"},"./node":{"import":"./dist/esm/src/node/index.js","require":"./dist/cjs/src/node/index.js"},"./wasm":{"import":"./dist/esm/src/wasm/index.js","require":"./dist/cjs/src/wasm/index.js"}},"gitHead":"e21df5becfbd9aebe0b502cf1a44e8d93abf3f18","scripts":{"test":"npm run test:cjs","build":"npm run build:version && npm run build:cjs && npm run build:esm","clean":"node --eval \"require('fs').rmSync('dist', { recursive: true, force: true })\"","eslint":"eslint --ext ts --max-warnings 0 src test","prepack":"npm run clean && npm run build","pretest":"npm run build:version","test:cjs":"npm run build:cjs && mocha --no-config --recursive dist/cjs/test","build:cjs":"tsc --build tsconfig.build-cjs.json && cp package.cjs.json dist/cjs/package.json","build:esm":"tsc --build tsconfig.build-esm.json","eslint-fix":"eslint --ext ts --max-warnings 0 --fix src test","verify:pack":"node scripts/verify-pack.cjs","build:version":"node --eval \"console.log('export const version = \\'' + require('./package.json').version + '\\'')\" > src/version.ts","prepublishOnly":"npm run test && npm run verify:pack"},"_npmUser":{"name":"monostop","email":"viktor.forsman@gmail.com"},"repository":{"url":"git+https://github.com/crewlm/gherkin-lsp.git","type":"git"},"_npmVersion":"11.12.1","description":"Gherkin language server for Python Behave step definitions","directories":{},"lint-staged":{"{src,test}/**/*.ts":"npm run eslint-fix"},"_nodeVersion":"26.0.0","dependencies":{"fast-glob":"3.3.3","source-map-support":"0.5.21","vscode-languageserver":"8.0.2","@cucumber/gherkin-utils":"^10.0.0","@cucumber/language-service":"^1.7.0","vscode-languageserver-types":"3.17.5","vscode-languageserver-textdocument":"1.0.12"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.7","mocha":"11.7.6","eslint":"8.57.1","ts-node":"10.9.2","prettier":"3.8.3","typescript":"5.9.3","@types/node":"24.12.4","lint-staged":"^17.0.0","@types/mocha":"10.0.10","vscode-jsonrpc":"8.2.1","eslint-plugin-n":"17.24.0","@cucumber/cucumber":"12.9.0","eslint-plugin-import":"2.32.0","eslint-config-prettier":"10.1.8","eslint-plugin-prettier":"5.5.6","@typescript-eslint/parser":"7.18.0","vscode-languageserver-protocol":"3.17.2","@typescript-eslint/eslint-plugin":"7.18.0","eslint-plugin-simple-import-sort":"12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/gherkin-lsp_0.0.1_1780275165231_0.8228777104974196","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.0":{"name":"@crewlm/gherkin-lsp","version":"0.1.0","keywords":["cucumber","gherkin","lsp"],"author":{"name":"CrewLM"},"license":"MIT","_id":"@crewlm/gherkin-lsp@0.1.0","maintainers":[{"name":"monostop","email":"viktor.forsman@gmail.com"}],"contributors":[{"name":"Viktor Forsman","email":"viktor.forsman@crewlm.ai"}],"homepage":"https://github.com/crewlm/gherkin-lsp#readme","bugs":{"url":"https://github.com/crewlm/gherkin-lsp/issues"},"bin":{"gherkin-lsp":"bin/gherkin-lsp.cjs"},"dist":{"shasum":"c179da73c9c1339f3cee64685c654dc84bad3a92","tarball":"https://registry.npmjs.org/@crewlm/gherkin-lsp/-/gherkin-lsp-0.1.0.tgz","fileCount":143,"integrity":"sha512-aZmTMJ3yG2JjpJBAirvQG8d4GLPTi3hBzdLhHZLG6c5GYQvPemJ/Eogq2gmD0jNC4aEFlY8f1sRzYwWrDEKnTA==","signatures":[{"sig":"MEUCIFROx5r/6UCvlTraJhBsjL3sXuLZ4SiyTa4nGrnIBS3tAiEApbLhkHGET4hzenIfommNpTvFXywvNoXMQsM+HdP0BTI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211699},"main":"dist/cjs/src/index.js","type":"module","types":"dist/esm/src/index.d.ts","module":"dist/esm/src/index.js","engines":{"node":">=16.0.0"},"exports":{".":{"import":"./dist/esm/src/index.js","require":"./dist/cjs/src/index.js"},"./node":{"import":"./dist/esm/src/node/index.js","require":"./dist/cjs/src/node/index.js"},"./wasm":{"import":"./dist/esm/src/wasm/index.js","require":"./dist/cjs/src/wasm/index.js"}},"gitHead":"ea33c61a7ae5dbe2d83bd621e3529fe56df6640c","scripts":{"test":"npm run test:cjs","build":"npm run build:version && npm run build:cjs && npm run build:esm","clean":"node --eval \"require('fs').rmSync('dist', { recursive: true, force: true })\"","eslint":"eslint --ext ts --max-warnings 0 src test","prepack":"npm run clean && npm run build","pretest":"npm run build:version","test:cjs":"npm run build:cjs && mocha --no-config --recursive dist/cjs/test","build:cjs":"tsc --build tsconfig.build-cjs.json && cp package.cjs.json dist/cjs/package.json","build:esm":"tsc --build tsconfig.build-esm.json","eslint-fix":"eslint --ext ts --max-warnings 0 --fix src test","verify:pack":"node scripts/verify-pack.cjs","build:version":"node --eval \"console.log('export const version = \\'' + require('./package.json').version + '\\'')\" > src/version.ts","prepublishOnly":"npm run test && npm run verify:pack"},"_npmUser":{"name":"monostop","email":"viktor.forsman@gmail.com"},"repository":{"url":"git+https://github.com/crewlm/gherkin-lsp.git","type":"git"},"_npmVersion":"11.12.1","description":"Gherkin language server for Python Behave step definitions","directories":{},"lint-staged":{"{src,test}/**/*.ts":"npm run eslint-fix"},"_nodeVersion":"26.0.0","dependencies":{"fast-glob":"3.3.3","source-map-support":"0.5.21","vscode-languageserver":"8.0.2","@cucumber/gherkin-utils":"^10.0.0","@cucumber/language-service":"^1.7.0","vscode-languageserver-types":"3.17.5","vscode-languageserver-textdocument":"1.0.12"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.7","mocha":"11.7.6","eslint":"8.57.1","ts-node":"10.9.2","prettier":"3.8.3","typescript":"5.9.3","@types/node":"24.12.4","lint-staged":"^17.0.0","@types/mocha":"10.0.10","vscode-jsonrpc":"8.2.1","eslint-plugin-n":"17.24.0","@cucumber/cucumber":"12.9.0","eslint-plugin-import":"2.32.0","eslint-config-prettier":"10.1.8","eslint-plugin-prettier":"5.5.6","@typescript-eslint/parser":"7.18.0","vscode-languageserver-protocol":"3.17.2","@typescript-eslint/eslint-plugin":"7.18.0","eslint-plugin-simple-import-sort":"12.1.1"},"_npmOperationalInternal":{"tmp":"tmp/gherkin-lsp_0.1.0_1780372602577_0.5197417486036844","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"time":{"created":"2026-06-01T00:52:45.091Z","modified":"2026-06-05T23:57:55.278Z","0.0.1":"2026-06-01T00:52:45.407Z","0.1.0":"2026-06-02T03:56:42.724Z"},"bugs":{"url":"https://github.com/crewlm/gherkin-lsp/issues"},"author":{"name":"CrewLM"},"license":"MIT","homepage":"https://github.com/crewlm/gherkin-lsp#readme","keywords":["cucumber","gherkin","lsp"],"repository":{"url":"git+https://github.com/crewlm/gherkin-lsp.git","type":"git"},"description":"Gherkin language server for Python Behave step definitions","contributors":[{"name":"Viktor Forsman","email":"viktor.forsman@crewlm.ai"}],"maintainers":[{"name":"monostop","email":"viktor.forsman@gmail.com"}],"readme":"<h1 align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/cucumber/cucumber-js/46a5a78107be27e99c6e044c69b6e8f885ce456c/docs/images/logo.svg\" alt=\"Cucumber logo\" width=\"75\">\n  <br>\n  Gherkin LSP\n</h1>\n<p align=\"center\">\n  <b>A <a href=\"https://langserver.org/\">Language Server</a> for Gherkin feature files and Python Behave steps</b>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@crewlm/gherkin-lsp\">\n    <img src=\"https://img.shields.io/npm/v/@crewlm/gherkin-lsp.svg?color=dark-green\" alt=\"npm\">\n  </a>\n</p>\n\nProvides Gherkin diagnostics, completion, formatting, and step-definition navigation for\neditors that support the Language Server Protocol (LSP).\n\nThis project is a hard fork of\n[`cucumber/language-server`](https://github.com/cucumber/language-server), originally\ndeveloped by Cucumber Ltd and contributors. It is distributed under the MIT License.\nThis fork is maintained by CrewLM and focuses on Gherkin/Carmen Python Behave\nworkflows.\n\n## Features\n\nThis is a focused fork of the Cucumber language server. It defaults to:\n\n- all `**/*.feature` files in the editor workspace\n- all Python step definitions matching `**/steps/**/*.py`\n\n## Install\n\nRun the server directly with `npx` or `bunx`:\n\n```console\nnpx @crewlm/gherkin-lsp --stdio\nbunx @crewlm/gherkin-lsp --stdio\n```\n\nThe executable exposed by the package is `gherkin-lsp`.\n\n## CLI check\n\nCheck one feature file from a Carmen `carmusr` checkout:\n\n```console\ngherkin-lsp check gherkin_features/PAIRING_BASE/trip.feature\n```\n\nFor the standard Carmen layout, the command infers the `carmusr` root from the feature\npath and loads step definitions from:\n\n```text\nlib/python/carmtest/behave/steps/**/*.py\n```\n\nOverride discovery when needed:\n\n```console\ngherkin-lsp check path/to/file.feature \\\n  --root /path/to/carmusr \\\n  --steps 'lib/python/carmtest/behave/steps/**/*.py' \\\n  --format text \\\n  --fail-on error\n```\n\nOptions:\n\n- `--root <path>` overrides the inferred `carmusr` root.\n- `--steps <glob-or-dir>` overrides the default step-definition location. Relative\n  paths are resolved from the inferred or explicit root.\n- `--format text|json` defaults to `text`.\n- `--fail-on error|warning` defaults to `error`; undefined steps are warnings.\n\n### Settings\n\nThe LSP client can provide settings to the server, but the server provides zero-config\ndefaults if the client does not provide them.\n\nFor layouts like this:\n\n```text\ncarmusr/\n  gherkin_features/**/*.feature\n  lib/python/carmtest/behave/steps/**/*.py\n```\n\nthe default `**/*.feature` and `**/steps/**/*.py` globs work when the workspace root is\n`carmusr`.\n\nIf the editor workspace root is somewhere else, point the server at the steps directory\nexplicitly:\n\n```console\nGHERKIN_LSP_STEPS=/path/to/carmusr/lib/python/carmtest/behave/steps npx @crewlm/gherkin-lsp --stdio\n```\n\n`GHERKIN_LSP_STEPS` also accepts a glob:\n\n```console\nGHERKIN_LSP_STEPS=/path/to/carmusr/lib/python/carmtest/behave/steps/**/*.py npx @crewlm/gherkin-lsp --stdio\n```\n\nThe server retrieves `cucumber.*` settings from the client with a [workspace/configuration](https://microsoft.github.io/language-server-protocol/specification#workspace_configuration) request.\n\nSee [Settings](src/types.ts) for details about the expected format.\n","readmeFilename":"README.md"}