{"id":14156387,"url":"https://github.com/cucumber/vscode","last_synced_at":"2025-04-05T19:14:41.843Z","repository":{"id":37298110,"uuid":"416659736","full_name":"cucumber/vscode","owner":"cucumber","description":"Official Visual Studio Code Extension for Cucumber","archived":false,"fork":false,"pushed_at":"2024-10-28T23:18:24.000Z","size":19090,"stargazers_count":66,"open_issues_count":33,"forks_count":17,"subscribers_count":70,"default_branch":"main","last_synced_at":"2024-10-29T14:46:49.625Z","etag":null,"topics":["polyglot-release"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cucumber.png","metadata":{"funding":{"open_collective":"cucumber","github":"cucumber"},"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-13T08:52:35.000Z","updated_at":"2024-10-09T16:04:47.000Z","dependencies_parsed_at":"2023-12-24T11:31:06.260Z","dependency_job_id":"7c346c81-12df-4caf-ae25-5ff7010c3793","html_url":"https://github.com/cucumber/vscode","commit_stats":{"total_commits":719,"total_committers":15,"mean_commits":47.93333333333333,"dds":"0.32962447844228093","last_synced_commit":"e1de5175e8e31796c2b77f6316589fa0db7eccfd"},"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cucumber%2Fvscode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cucumber%2Fvscode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cucumber%2Fvscode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cucumber%2Fvscode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cucumber","download_url":"https://codeload.github.com/cucumber/vscode/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246194525,"owners_count":20738690,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["polyglot-release"],"created_at":"2024-08-17T08:05:25.587Z","updated_at":"2025-03-29T18:06:52.135Z","avatar_url":"https://github.com/cucumber.png","language":"TypeScript","funding_links":["https://opencollective.com/cucumber","https://github.com/sponsors/cucumber"],"categories":["others","TypeScript"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/cucumber/cucumber-js/46a5a78107be27e99c6e044c69b6e8f885ce456c/docs/images/logo.svg\" alt=\"Cucumber logo\" width=\"75\"\u003e\n  \u003cbr\u003e\n  Cucumber for VSCode\n\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  \u003cb\u003eOfficial Visual Studio Code extension for Cucumber and Gherkin\u003c/b\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://marketplace.visualstudio.com/items?itemName=CucumberOpen.cucumber-official\" style=\"text-decoration: none\"\u003e\n    \u003cimg src=\"https://img.shields.io/visual-studio-marketplace/v/CucumberOpen.cucumber-official?style=flat\u0026color=dark-green\" alt=\"Visual Studio Marketplace Version\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://marketplace.visualstudio.com/items?itemName=CucumberOpen.cucumber-official\" style=\"text-decoration: none\"\u003e\n    \u003cimg src=\"https://img.shields.io/visual-studio-marketplace/i/CucumberOpen.cucumber-official\" alt=\"Visual Studio Marketplace Installs\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://marketplace.visualstudio.com/items?itemName=CucumberOpen.cucumber-official\" style=\"text-decoration: none\"\u003e\n    \u003cimg src=\"https://img.shields.io/visual-studio-marketplace/d/CucumberOpen.cucumber-official\" alt=\"Visual Studio Marketplace Downloads\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://marketplace.visualstudio.com/items?itemName=CucumberOpen.cucumber-official\" style=\"text-decoration: none\"\u003e\n    \u003cimg src=\"https://img.shields.io/visual-studio-marketplace/stars/CucumberOpen.cucumber-official\" alt=\"Visual Studio Marketplace Rating (Stars)\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/cucumber/vscode/actions/workflows/build.yaml\" style=\"text-decoration: none\"\u003e\n    \u003cimg src=\"https://github.com/cucumber/vscode/actions/workflows/build.yaml/badge.svg\" alt=\"build\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nMaintained by the [Cucumber team](https://github.com/cucumber/) and powered by the [Cucumber Language Server](https://github.com/cucumber/language-server#readme).\n\nAvailable from the [Open VSX Registry](https://open-vsx.org/extension/CucumberOpen/cucumber-official) and\n[Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=CucumberOpen.cucumber-official).\n\n## Features\n\n- ⌨️ [Autocomplete steps](#autocomplete)\n- 📍 [Go to step definition](#go-to-step-definition)\n- 🪄 [Generate step definition](#generate-step-definition)\n- 💄 [Syntax highlighting](#syntax-highlighting)\n- ✨ [Formatting](#formatting)\n- 🌎 [Gherkin localisation](#gherkin-localisation)\n- 📖 [Language support](#language-support)\n  - C#/SpecFlow\n  - Go/Godog\n  - Java\n  - JavaScript\n  - PHP\n  - Python/Behave\n  - Ruby\n  - Rust\n  - TypeScript\n- 🗂 [Document outline](#document-outline)\n- 🥒 [Feature file icons](#feature-file-icons)\n\n### Autocomplete\n\n![Autocomplete](https://raw.githubusercontent.com/cucumber/vscode/main/images/autocomplete.gif)\n\nWhen you start typing a step, you will see auto-complete suggestions\nbased on existing step definitions and Gherkin steps.\n\nThe suggestions are more helpful if your step definitions use\n[Cucumber Expressions](https://github.com/cucumber/cucumber-expressions#readme)\nbut you'll also get suggestions if they use Regular Expressions.\n\n### Go to step definition\n\n![Go to step definition](https://raw.githubusercontent.com/cucumber/vscode/main/images/goto-step-definition.gif)\n\nYou can quickly navigate from a Gherkin step to a step definition.\n\n### Generate step definition\n\n![Generate step definition](https://raw.githubusercontent.com/cucumber/vscode/main/images/generate-step-definition.gif)\n\nGenerate step definition snippets with a quick fix - `⌘` + `.` (MacOS) or\n`Ctrl` + `.` (Windows).\n\n_IMPORTANT_: Generate step definition will only be enabled\nif there is at least one existing step definition. This is\nso that the extension can determine the programming language\nfor the step definition, and provide choices for existing files\nto add it to.\n\n### Syntax highlighting\n\n![Syntax highlighting](https://raw.githubusercontent.com/cucumber/vscode/main/images/syntax-highlighting.gif)\n\nGherkin keywords and step parameters are highlighted.\nUndefined steps and syntax errors are underlined.\n\n### Formatting\n\n![Formatting](https://raw.githubusercontent.com/cucumber/vscode/main/images/formatting.gif)\n\nGherkin documents are formatted using two space indentation.\n\nNumeric cells are right-aligned (as in Excel). Non-numeric cells are left-aligned.\n\n### Document Outline\n\n![Document outline](https://raw.githubusercontent.com/cucumber/vscode/main/images/document-outline.gif)\n\nThe Outline panel displays an outline of the Gherkin document,\nmaking it easy to navigate between scenarios.\n\n### Gherkin Localisation\n\nGherkin supports many translations. To specify a translation, include a `# language: \u003ckey\u003e` header in your feature file, with a supported language key from the [localisation documentation](https://cucumber.io/docs/gherkin/languages/).\n\n![Localisation](https://raw.githubusercontent.com/cucumber/vscode/main/images/localisation.png)\n\nNew translations or updates are welcome and can be submitted through the [gherkin parser](https://github.com/cucumber/gherkin).\n\n### Language Support\n\nStep definitions support is provided for [different languages and frameworks](#features).\n\nIf you experience an issue with a supported language, please [raise a detailed bug report](https://github.com/cucumber/vscode/issues) or reach out for help through [our Discord community](https://cucumber.io/docs/community/get-in-touch#discord).\n\nIf your language or framework is unsupported, please [open an issue](https://github.com/cucumber/language-service/issues) or [raise a pull request](https://github.com/cucumber/language-service/pulls) in the [Cucumber Language Service](https://github.com/cucumber/language-service) - where language support is implemented.\n\n### Feature File Icons\n\nThe Cucumber icon is applied to all feature files in your workspace. This replaces the default document icon, making it easier to identify your feature files at a glance.\n\n![Feature file icon](https://raw.githubusercontent.com/cucumber/vscode/main/images/feature-file-icons.png)\n\n## Extension Settings\n\nIn most cases you shouldn't need to specify any settings\nas the extension comes with reasonable defaults.\n\nIf your `.feature` files and step definition files are\nin an unconventional file structure, you need to change the\nsettings to make autocomplete work properly.\n\nWith multi-root workspaces, you will need to either specify glob paths for each workspace individually (e.g. `workspace-a/features/*.feature` and `workspace-b/features/*.feature`) or specify a glob path that matches all of them (e.g. `**/features/*.feature`). See [VSCode documentation for configuring a multi-root workspace](https://code.visualstudio.com/docs/editor/multi-root-workspaces#_workspace-file-schema).\n\n### `cucumber.features`\n\n[//]: # (\u003ccucumber.features\u003e)\nThe `cucumber.features` setting overrides where the extension\nshould look for `.feature` files.\n\nIf no feature files are found, [autocomplete](#autocomplete)\nwill not work.\n\nDefault value:\n\n```json\n{\n  \"cucumber.features\": [\n    \"src/test/**/*.feature\",\n    \"features/**/*.feature\",\n    \"tests/**/*.feature\",\n    \"*specs*/**/*.feature\"\n  ]\n}\n```\n\n[//]: # (\u003c/cucumber.features\u003e)\n\n### `cucumber.glue`\n\n[//]: # (\u003ccucumber.glue\u003e)\nThe `cucumber.glue` setting overrides where the extension\nshould look for source code where step definitions and\nparameter types are defined.\n\nIf no glue files are found, [autocomplete](#autocomplete)\nwill not work, and all Gherkin steps will be underlined as\nundefined. [Generate step definition](#generate-step-definition)\nwill not work either.\n\nDefault value:\n\n```json\n{\n  \"cucumber.glue\": [\n    \"*specs*/**/*.cs\",\n    \"features/**/*.js\",\n    \"features/**/*.jsx\",\n    \"features/**/*.php\",\n    \"features/**/*.py\",\n    \"features/**/*.rs\",\n    \"features/**/*.rb\",\n    \"features/**/*.ts\",\n    \"features/**/*.tsx\",\n    \"features/**/*_test.go\",\n    \"src/test/**/*.java\",\n    \"tests/**/*.py\",\n    \"tests/**/*.rs\"\n  ]\n}\n```\n\n[//]: # (\u003c/cucumber.glue\u003e)\n\n### `cucumber.parameterTypes`\n\n[//]: # (\u003ccucumber.parameterTypes\u003e)\nOverride the `cucumber.parameterTypes` setting if your Cucumber Expressions\nare using [Custom Parameter Types](https://github.com/cucumber/cucumber-expressions#custom-parameter-types) that are defined outside your `cucumber.glue` setting.\n\nParameter Types in the `cucumber.glue` globs will be picked up automatically.\n\nDefault value:\n\n```json\n{\n  \"cucumber.parameterTypes\": []\n}\n```\n\nFor example, if you're using the `actor` parameter type from [@cucumber/screenplay](https://github.com/cucumber/screenplay.js#actors) you'll have to declare this in the `parameterTypes` setting:\n\n````json\n{\n  \"cucumber.parameterTypes\": [\n    { \"name\": \"actor\", \"regexp\": \"[A-Z][a-z]+\" }\n  ]\n}\n````\n\n[//]: # (\u003c/cucumber.parameterTypes\u003e)\n\n## Feedback\n\nIf you discover a bug, or have a suggestion for a feature request, please\nsubmit an [issue](https://github.com/cucumber/vscode/issues).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcucumber%2Fvscode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcucumber%2Fvscode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcucumber%2Fvscode/lists"}