Coder Social home page Coder Social logo

vscode's Introduction


Cucumber for VSCode

Official Visual Studio Code extension for Cucumber and Gherkin

Visual Studio Marketplace Version Visual Studio Marketplace Installs Visual Studio Marketplace Downloads Visual Studio Marketplace Rating (Stars) build

Maintained by the Cucumber team and powered by the Cucumber Language Server.

Available from the Open VSX Registry and Visual Studio Marketplace.

Features

Autocomplete

Autocomplete

When you start typing a step, you will see auto-complete suggestions based on existing step definitions and Gherkin steps.

The suggestions are more helpful if your step definitions use Cucumber Expressions but you'll also get suggestions if they use Regular Expressions.

Go to step definition

Go to step definition

You can quickly navigate from a Gherkin step to a step definition.

Generate step definition

Generate step definition

Generate step definition snippets with a quick fix - โŒ˜ + . (MacOS) or Ctrl + . (Windows).

IMPORTANT: Generate step definition will only be enabled if there is at least one existing step definition. This is so that the extension can determine the programming language for the step definition, and provide choices for existing files to add it to.

Syntax highlighting

Syntax highlighting

Gherkin keywords and step parameters are highlighted. Undefined steps and syntax errors are underlined.

Formatting

Formatting

Gherkin documents are formatted using two space indentation.

Numeric cells are right-aligned (as in Excel). Non-numeric cells are left-aligned.

Document Outline

Document outline

The Outline panel displays an outline of the Gherkin document, making it easy to navigate between scenarios.

Gherkin Localisation

Gherkin supports many translations. To specify a translation, include a # language: <key> header in your feature file, with a supported language key from the localisation documentation.

Localisation

New translations or updates are welcome and can be submitted through the gherkin parser.

Language Support

Step definitions support is provided for different languages and frameworks.

If you experience an issue with a supported language, please raise a detailed bug report or reach out for help through our Discord community.

If your language or framework is unsupported, please open an issue or raise a pull request in the Cucumber Language Service - where language support is implemented.

Feature File Icons

The 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.

Feature file icon

Extension Settings

In most cases you shouldn't need to specify any settings as the extension comes with reasonable defaults.

If your .feature files and step definition files are in an unconventional file structure, you need to change the settings to make autocomplete work properly.

With 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.

cucumber.features

The cucumber.features setting overrides where the extension should look for .feature files.

If no feature files are found, autocomplete will not work.

Default value:

{
  "cucumber.features": [
    "src/test/**/*.feature",
    "features/**/*.feature",
    "tests/**/*.feature",
    "*specs*/**/*.feature"
  ]
}

cucumber.glue

The cucumber.glue setting overrides where the extension should look for source code where step definitions and parameter types are defined.

If no glue files are found, autocomplete will not work, and all Gherkin steps will be underlined as undefined. Generate step definition will not work either.

Default value:

{
  "cucumber.glue": [
    "*specs*/**/*.cs",
    "features/**/*.js",
    "features/**/*.jsx",
    "features/**/*.php",
    "features/**/*.py",
    "features/**/*.rs",
    "features/**/*.rb",
    "features/**/*.ts",
    "features/**/*.tsx",
    "features/**/*_test.go",
    "src/test/**/*.java",
    "tests/**/*.py",
    "tests/**/*.rs"
  ]
}

cucumber.parameterTypes

Override the cucumber.parameterTypes setting if your Cucumber Expressions are using Custom Parameter Types that are defined outside your cucumber.glue setting.

Parameter Types in the cucumber.glue globs will be picked up automatically.

Default value:

{
  "cucumber.parameterTypes": []
}

For example, if you're using the actor parameter type from @cucumber/screenplay you'll have to declare this in the parameterTypes setting:

{
  "cucumber.parameterTypes": [
    { "name": "actor", "regexp": "[A-Z][a-z]+" }
  ]
}

Feedback

If you discover a bug, or have a suggestion for a feature request, please submit an issue.

vscode's People

Contributors

aravol avatar aslakhellesoy avatar aurelien-reeves avatar cukebot avatar goooice avatar kieran-ryan avatar margori avatar mattwynne avatar mpkorstanje avatar nodeg avatar renovate-bot avatar renovate[bot] avatar xeger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vscode's Issues

Patterns with line breaks are not matched as expected

๐Ÿ‘“ What did you see?

Undefined step when matcher has line breaks:

image

โœ… What did you expect to see?

It should work

๐Ÿ“ฆ Which tool/library version are you using?

$ rustup -V
rustup unknown (b0adb0c09 2022-10-10) dirty 1 modification
info: This is the version for the rustup toolchain manager, not the rustc compiler.
info: The currently active `rustc` version is `rustc 1.64.0 (a55dd71d5 2022-09-19)`

https://docs.rs/cucumber

[dev-dependencies]
cucumber = "0.15"
Name: Cucumber
Id: CucumberOpen.cucumber-official
Description: Cucumber for Visual Studio Code
Version: 1.5.1
Publisher: Cucumber
VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=CucumberOpen.cucumber-official

๐Ÿ”ฌ How could we reproduce it?

In your tests have a matcher with line breaks in it, open corresponding .feature, observe Undefined step and no goto definition in the editor. Default VScode settings.

MRE: https://github.com/zohnannor/cucumber-vscode-mre/tree/line-breaks


This text was originally generated from a template, then edited by hand. You can modify the template here.

Run scenarios

๐Ÿค” What's the problem you're trying to solve?

I don't want to leave my editor to run scenarios

โœจ What's your proposed solution?

A keyboard shortcut for running the scenario on the current line, or all the scenarios, or all the scenarios in a directory, or filtered by tags etc etc.

This would run Cucumber with the message formatter, send the messages to a temporary file, parse the contents of that file (using this class) and decorate lines in the code with a background indicating the status. Errors can be expanded straight in the editor. Stack trace elements would be links.

How to execute Cucumber depends on the Cucumber implementation, so the editor would have to know how to deal with each implementation. We should provide a setting to allow users to override how Cucumber is run.

No syntax highlighting on MacOs

๐Ÿ‘“ What did you see?

Plain text .feature file

โœ… What did you expect to see?

Highlighted syntax in .feature file

๐Ÿ“ฆ Which tool/library version are you using?

Cucumber 1.2.8

๐Ÿ”ฌ How could we reproduce it?

Steps to reproduce the behavior:

  1. Install Cucumber 1.2.8 on VSCode 1.69.2 for MacOs Monterey
  2. Reload VScode
  3. Open a project either locally or via the popular Remote - Containers extension
  4. Create a file called test.feature in a feature/ folder in the workspace's root
  5. Select Cucumber as language mode from the right side of the bottom status bar
  6. Acknowledge that syntax highlighting is still not applied

Publish to Open VSX Registry

Hi @aslakhellesoy and the team! I'm glad you've built an official Cucumber extension for VSCode, kudos ๐Ÿ‘๐Ÿป

Do you think it would it be possible to publish this extension to the Open VSX Registry?

As I'm sure you know, Microsoft prohibits direct use of extensions downloaded from Visual Studio Marketplace in non-Microsoft software, even though most extensions there are open-source and not developed or maintained by Microsoft.

I understand that there was an issue with Open VSX not supporting renaming the Cucumber namespace to CucumberOpen, and that their suggestion is to publish to a new namespace - EclipseFdn/open-vsx.org#1008
I also noticed that the GitHub workflow configuration is expected to push the extension to Open VSX, but the publishing step is currently failing.

Is there anything left to do to make this happen? Anything I can do to help?
I'm sure the community would greatly appreciate being able to benefit from your work.

Thanks and take care,
Jan

Use of other spoken languages

๐Ÿค” What's the problem you're trying to solve?

Using SpecFlow (and Cucumber) in The Netherlands I often use dutch for my feature files.
To give none development team members te possibility to contribute to the feature files vscode is een goed tool.
Having the highlighting of the Cucumber plugin whould be even more usefull. But as far as I figured out is does not suport the (spoken) languages of https://cucumber.io/docs/gherkin/languages/.

โœจ What's your proposed solution?

Make it possible to use these supported languages.
Even adding the possibility to ad the translation tabel as shown on the https://cucumber.io/docs/gherkin/languages/ in the vscode/cucumber plug-in settings whould be aan improvement.

๐Ÿ“š Any additional context?

Examples

Visual studio shows:
image

And

image

vscode with Cucumber plug-in shows:
image

Instead of someting like:
image

Performance issues with large repositories

๐Ÿค” What's the problem you're trying to solve?

Working with a large repository is extremely slow, often making VS Code hang. Also, on restarting VS Code it seems like the extension needs to re-find/cache the feature/step files.

โœจ What's your proposed solution?

Perhaps a persistent cache can be used so that the indexing/caching process is done only once, unless there is a change to files/directories.

Also, if possible that process should be a separate thread so it doesn't make VS Code unresponsive.

Fix and re-release the extension

The extension in the marketplace is broken. The language server fails to load the WASM code. We need to:

  • Bundle the server code as a separate js file
  • Extract the wasm binaries as part of the build step and put them alongside the js

Ideally we'd fix cucumber/language-server#28 before attacking the steps above

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Location: ^*.gemspec
Error type: Invalid regular expression: ^*.gemspec

New version (v1.6.0) broke python behave step navigation

๐Ÿ‘“ What did you see?

After update for a new version:

  1. Steps with regexp start highlighting as undefinded steps
  2. Scenarios with examples just not parse at all

โœ… What did you expect to see?

Everything works as day ago :)

๐Ÿ“ฆ Which tool/library version are you using?

Python 3.9.6
Cucumber Extension v1.6.0
VSCODE:
Version: 1.73.1 (Universal)
Commit: 6261075646f055b99068d3688932416f2346dd3b
Date: 2022-11-09T02:08:38.961Z (2 wks ago)
Electron: 19.0.17
Chromium: 102.0.5005.167
Node.js: 16.14.2
V8: 10.2.154.15-electron.0
OS: Darwin x64 22.1.0
Sandboxed: No

๐Ÿ”ฌ How could we reproduce it?

Just open any behave project with extension
screenshot of step with regex
image

๐Ÿ“š Any additional context?

When i downgrade to v1.5.1 everything works fine again

Bug report: An alternation can not be used inside an optional.

๐Ÿ‘“ What did you see?

[Info  - 19:03:16] Reindexing file://c:\develop\HIDDEN
[Info  - 19:03:16] * Found 63 feature file(s) in ["tests/e2e/specs/**/*.feature"]
[Info  - 19:03:16] * Found 1135 steps in those feature files
[Info  - 19:03:18] * Found 62 glue file(s) in ["tests/e2e/specs/**/*.js"]
[Info  - 19:03:18] * Found 0 parameter types in those glue files
[Info  - 19:03:18] * Found 463 step definitions in those glue files
[Error - 19:03:18] * Step Definition errors: Error: This Cucumber Expression has a problem at column 21:

entro no detalhe d(a/o) {string}
                    ^
An alternation can not be used inside an optional.
You can use '\/' to escape the the '/'
    at mT (c:\Users\cloud\.vscode\extensions\cucumberopen.cucumber-official-1.7.0\out\extension.js:67:79659)
    at e0 (c:\Users\cloud\.vscode\extensions\cucumberopen.cucumber-official-1.7.0\out\extension.js:84:1105)
    at Gk (c:\Users\cloud\.vscode\extensions\cucumberopen.cucumber-official-1.7.0\out\extension.js:84:2717)
    at bT (c:\Users\cloud\.vscode\extensions\cucumberopen.cucumber-official-1.7.0\out\extension.js:84:2874)
    at c:\Users\cloud\.vscode\extensions\cucumberopen.cucumber-official-1.7.0\out\extension.js:84:2484
    at Gk (c:\Users\cloud\.vscode\extensions\cucumberopen.cucumber-official-1.7.0\out\extension.js:84:2717)
    at bT (c:\Users\cloud\.vscode\extensions\cucumberopen.cucumber-official-1.7.0\out\extension.js:84:2874)
    at Bk (c:\Users\cloud\.vscode\extensions\cucumberopen.cucumber-official-1.7.0\out\extension.js:84:2005)
    at Gk (c:\Users\cloud\.vscode\extensions\cucumberopen.cucumber-official-1.7.0\out\extension.js:84:2717)
    at bT (c:\Users\cloud\.vscode\extensions\cucumberopen.cucumber-official-1.7.0\out\extension.js:84:2874)
    at c:\Users\cloud\.vscode\extensions\cucumberopen.cucumber-official-1.7.0\out\extension.js:84:2484
    at ic.parse (c:\Users\cloud\.vscode\extensions\cucumberopen.cucumber-official-1.7.0\out\extension.js:84:2376)
    at new Mi (c:\Users\cloud\.vscode\extensions\cucumberopen.cucumber-official-1.7.0\out\extension.js:84:5199)
    at ma.createExpression (c:\Users\cloud\.vscode\extensions\cucumberopen.cucumber-official-1.7.0\out\extension.js:84:11734)
    at c:\Users\cloud\.vscode\extensions\cucumberopen.cucumber-official-1.7.0\out\extension.js:448:748
    at Lf.eachStepDefinitionExpression (c:\Users\cloud\.vscode\extensions\cucumberopen.cucumber-official-1.7.0\out\extension.js:445:1237)
    at Af.build (c:\Users\cloud\.vscode\extensions\cucumberopen.cucumber-official-1.7.0\out\extension.js:448:695)
    at bc.<anonymous> (c:\Users\cloud\.vscode\extensions\cucumberopen.cucumber-official-1.7.0\out\extension.js:454:18598)
    at Generator.next (<anonymous>)
    at u (c:\Users\cloud\.vscode\extensions\cucumberopen.cucumber-official-1.7.0\out\extension.js:454:11308)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

โœ… What did you expect to see?

๐Ÿ“ฆ Which tool/library version are you using?

Cucumber plugin: v1.7.0
VS code: 1.74.3

๐Ÿ”ฌ How could we reproduce it?

Steps to reproduce the behavior:

  1. Install Cucumber extension v1.7 onto latest VS Code
  2. Create any feature file
  3. Have two Scenario:
# language: pt

Funcionalidade: XYZ

    Cenรกrio: Editar XYZ
        Quando entro no detalhe da "XYZ"

    Cenรกrio: Editar ZYX
        Quando entro no detalhe do "ZYX"
  1. Create any spec file
  2. Have one step definition:
import { When } from 'cypress-cucumber-preprocessor/steps'
const { wait } = cy

When('entro no detalhe d(a/o) {string}', () => {
  wait('@apisRequests')
})

๐Ÿ“š Any additional context?


This text was originally generated from a template, then edited by hand. You can modify the template here.

Weird sidebar icon with no content appearing after installing the extension

๐Ÿ‘“ What did you see?

A messed up sidebar icon with a messed up name and no content

โœ… What did you expect to see?

Some kind of sidebar or no sidebar at all... I don't know if the sidebar is intended at all ('cause it doesn't show up anywhere in the README)

๐Ÿ“ฆ Which tool/library version are you using?

Cucumber 1.2.8

๐Ÿ”ฌ How could we reproduce it?

Steps to reproduce the behavior:

  1. Install Cucumber 1.2.8 on VSCode 1.69.2 for MacOs Monterey
  2. Reload VScode
  3. Open a project either locally or via the popular Remote - Containers extension
  4. Look for a generic sidebar icon
  5. Click on the icon
  6. Acknowledge that the sidebar's metadata and content are not displayed

Schermata 2022-07-21 alle 10 16 49

No support glue js file?

Hi, it works like a charm if I use ts file, but js just have not found

[Info - 3:44:10 PM] * Found 0 glue file(s) in ["features//*.php","features//.rb","e2e/step_definitions/.ts","e2e/step_definitions/.js","features/**/.py","src/test//*.java","specs//.cs"]

Missing Binary Operator

Hi, I'm new to this and could use some help in configuring the Firmware for my Ender 6.

I am getting the following error in VS Code and don't know how to correct it? Any help would be greatly appreciated!

buildroot/share/PlatformIO/scripts/../../../../Marlin/src/inc/../../Configuration.h:155:12: error: missing binary operator before token "("
155 | #if ENABLE (CUSTOM_PROBE)
| ^

Server Initialisation Failure

Coincidental to a vscode update, I now see a server initialisation failure for this extension, on startup of vscode. Symptoms are a Server Initialisation error, with the following output:

[Error - 10:00:58 AM] Server initialization failed.
Message: Request initialize failed with message: abort(Assertion failed: bad export type for tree_sitter_php_external_scanner_create: undefined). Build with -s ASSERTIONS=1 for more info.
Code: -32603
[Error - 10:00:58 AM] Cucumber Language Server client: couldn't create connection to server.
Message: Request initialize failed with message: abort(Assertion failed: bad export type for tree_sitter_php_external_scanner_create: undefined). Build with -s ASSERTIONS=1 for more info.
Code: -32603

Additionally, colour coding of my Gherkin stops working until I uninstall the extension and re-start.

Reproducing? Your best chance of reproducing the issue locally, I think, would be:

  • Windows 10
  • Visual Studio Code as below:

Version: 1.78.0 (user setup)
Commit: 252e5463d60e63238250799aef7375787f68b4ee
Date: 2023-05-03T20:09:00.748Z
Electron: 22.4.8
Chromium: 108.0.5359.215
Node.js: 16.17.1
V8: 10.8.168.25-electron.0
OS: Windows_NT x64 10.0.19045
Sandboxed: No

Highlight undefined steps in Scenario Outlines

When using scenario outline for data-driving with the help of examples, The following issues occur :

  • Only the parameters which are present in the Examples table are highlighted. For example in the below image, the "EducatorLogin" & "Dashboard" parameters are not highlighted as it's mentioned directly in the step as they don't change so no need to put it in the Examples table
    image

  • The missing step highlighter/generator doesn't run if there is an example table in the scenario. For example in the below image, the step Given QWERTY is invalid, but it's not highlighted & pressing Cmd+. doesn't give to generate a step definition for it.
    image

But if the example table is removed, it starts highlighting the step & also suggests action to generate step definition
image
image

Syntax highlighting and autocomplete not working with WSL

๐Ÿ‘“ What did you see?

image

โœ… What did you expect to see?

Syntax highlighting and autocomplete

๐Ÿ“ฆ Which tool/library version are you using?

extension: v1.5.1
cucumber: v8.7.0

๐Ÿ”ฌ How could we reproduce it?

Steps to reproduce the behavior:

  1. Install versions above
  2. Create a any .feature file in <root>/features folder
  3. Look

This text was originally generated from a template, then edited by hand. You can modify the template here.

Tables with CJK characters do not align

๐Ÿ‘“ What did you see?

When having CJK characters in table, table is not aligned after formatting.

โœ… What did you expect to see?

The table should be aligned, one cjk character should be calculated as two spaces instead of one.

๐Ÿ“ฆ Which tool/library version are you using?

cucumber vscode extension, 1.2.8

๐Ÿ”ฌ How could we reproduce it?

๐Ÿ“š Any additional context?

expected:
image

actual:
image


This text was originally generated from a template, then edited by hand. You can modify the template here.

Can't install extension because not compatible with current version of VS Code

๐Ÿ‘“ What did you see?

While trying to install the extension on VS Code, an error message is shown: "Can't install 'cucumberopen.cucumber-official' extension because it is not compatible with the current version of Visual Studio Code (version 1.66.2)."

๐Ÿ“ฆ Which tool/library version are you using?

Trying to install the extension from the marketplace
VSCode 1.66.2

Addition

After restarting VSCode, it has been updated to 1.67.1. The extension installed properly on that one.
Please note that package.json specifies v1.63.2 as required vscode engine


This text was originally generated from a template, then edited by hand. You can modify the template here.

Go to definition to TypeScript source is not working on Windows

๐Ÿ‘“ What did you see?

Go to definition to TypeScript source is not working because the file path is not correct.
It tries to open a path like \\c:\myproject\test\features\step_definitions\app.ts\ and fails. VSCode display an error "The editor could not be opened due to an unexpected error: File is a directory"

โœ… What did you expect to see?

The source file should be opened

๐Ÿ“ฆ Which tool/library version are you using?

VSCode 1.68.1
VSCode Cucumber v1.2.7
A TypeScript project

Snippet generation does not respect configuration

๐Ÿ‘“ What did you see?

I have a cucumber.json file with the snippetInterface setting set to async-await. When I run cucumber the snippets outputed for undefined steps show the use of async function.

When I generate a step from the feature file via the plugin, the step generated uses a synchronous arrow function.

โœ… What did you expect to see?

The generated step should use an async function with the function keyword, just as cucumber does in its output.

๐Ÿ“ฆ Which tool/library version are you using?

cucumber-js v8.10.0

๐Ÿ”ฌ How could we reproduce it?

  1. Create a cucumber.json file with this content:
{
  "default": {
    "formatOptions": {
      "snippetInterface": "async-await"
    }
  }
}
  1. Open vscode with the cucumber plugin loaded.
  2. Write a feature file with undefined steps.
  3. Generate a step from the feature file via the plugin.
  4. See the generated step.

๐Ÿ“š Any additional context?


This text was originally generated from a template, then edited by hand. You can modify the template here.

Feature Background topic not styled correctly.

๐Ÿ‘“ What did you see?

"Background" topics are not styled correctly - version 1.2.8

image

๐Ÿ”ฌ How could we reproduce it?

Add a "Background:" section to a Feature.

Expected:

Background topic text is styled same as "Feature" and Scenario"

@And annotated steps are not see by the autocomplete

๐Ÿ‘“

@and annotated steps are not see by the autocomplete

โœ…

auto complete should highlite @and defined steps

๐Ÿ“ฆ

io.cucumber:cucumber-java:7.7.0,
Java 17,
vscode 1.76.1
plugin 1.7.0

๐Ÿ”ฌ create a java feature file with @and annotated steps

Steps to reproduce the behavior:

  1. add @Annotated method to java class
  2. configure class to be picked up by glue settings
  3. start writing .feature file
  4. try to use step

image

image

๐Ÿ“š Any additional context?

Step definitions/glue files not found on macOS

๐Ÿ‘“ What did you see?

I have one feature file duckduckgo.feature and one step definition file duckduckgo.js both located in the cypress/e2e folder. My plugin settings are as below:

{
  "cucumber.features": [
    "cypress/e2e/*.feature"
  ],
  "cucumber.glue": [
    "cypress/e2e/*.js"
  ]
}

However the .feature file is recognised, but the .js file is not. This is the output:

[Info  - 4:27:56 PM] Registering request handler for workspace/didChangeConfiguration failed.
[Info  - 4:27:56 PM] Client does not support client/registerCapability. This is OK.
[Info  - 4:27:56 PM] Cucumber Language Server 0.12.11 initialized
[Info  - 4:27:56 PM] Scheduling reindexing in 3000 ms
[Info  - 4:27:56 PM] Reindexing...
[Info  - 4:27:56 PM] * Found 1 feature file(s) in ["cypress/e2e/*.feature"]
[Info  - 4:27:56 PM] * Found 3 steps in those feature files
[Info  - 4:27:56 PM] * Found 0 glue file(s) in ["cypress/e2e/*.js"]
[Info  - 4:27:56 PM] * Found 0 parameter types in those glue files
[Info  - 4:27:56 PM] * Found 0 step definitions in those glue files
[Info  - 4:27:56 PM] * Built 3 suggestions for auto complete
[Info  - 4:27:56 PM] Unable to generate step definition. Please create one first manually.
[Info  - 4:27:56 PM] Unable to generate step definition. Please create one first manually.
[Info  - 4:27:57 PM] Unable to generate step definition. Please create one first manually.
[Info  - 4:27:59 PM] Reindexing...
[Info  - 4:27:59 PM] * Found 1 feature file(s) in ["cypress/e2e/*.feature"]
[Info  - 4:27:59 PM] * Found 3 steps in those feature files
[Info  - 4:27:59 PM] * Found 0 glue file(s) in ["cypress/e2e/*.js"]
[Info  - 4:27:59 PM] * Found 0 parameter types in those glue files
[Info  - 4:27:59 PM] * Found 0 step definitions in those glue files
[Info  - 4:27:59 PM] * Built 3 suggestions for auto complete
[Info  - 4:27:59 PM] Unable to generate step definition. Please create one first manually.
[Info  - 4:27:59 PM] Unable to generate step definition. Please create one first manually.

โœ… What did you expect to see?

I would have expected the .js file to be seen and the step definitions to be recognised.

๐Ÿ“ฆ Which tool/library version are you using?

I am using Cypress v10.6 with cypress-cucumber-preprocessor v12.1, VSCode v1.70.2 and plugin version v1.2.8. I have noticed this on earlier versions of Cypress and the Cypress Cucumber Preprocessor too.

๐Ÿ”ฌ How could we reproduce it?

Steps to reproduce the behavior:

  1. Set up a Cypress project.
  2. Ensure Cucumber plug in settings are pointing to the location of the files to be created.
  3. Add a feature file.
  4. Add a JavaScript step definitions file to define the steps in the feature file.
  5. Plugin should recognise glue file, but doesn't.

๐Ÿ“š Any additional context?

I am on an M1 Mac


This text was originally generated from a template, then edited by hand. You can modify the template here.

No parameter highlighting in VSCode Light/Dark Mode

๐Ÿ‘“ What did you see?

When using VSCode in light /dark theme mode, the step parameters are not highlighted at all. The highlighting works when using other themes like light+/dark+

โœ… What did you expect to see?

The parameter should be highlighted making it easier to identify

๐Ÿ“ฆ Which tool/library version are you using?

Extension Version : 1.2.8
Extension Settings :

{
    "cucumber.features": [
        "cypress/e2e/features/**/*.feature"
    ],
    "cucumber.glue": [
        "cypress/e2e/step_definitions/**/*.ts"
    ]
}

๐Ÿ”ฌ How could we reproduce it?

Steps to reproduce the behavior:

  1. Install the extension & configure it such that the step definitions are available for the extension to parse the steps
  2. Switch the Visual Studio Theme (Code -> Preferences -> Color Theme ->Light (Visual Studio)

Light Mode (Visual Studio)

image

Dark Mode (Visual Studio)

image

๐Ÿ“š Any additional context?


This text was originally generated from a template, then edited by hand. You can modify the template here.

Glue config not working

๐Ÿ‘“ What did you see?

.feature:
image

setdefs.js
image

Both user and workspace settings:
image
image

File structure:
image

The autocomplete is not working. I saw that, by default, the .js files are not inside the glue property, so I change it, but it still doesn't work. When I run cucumber the test pass successfully.

โœ… What did you expect to see?

The autocomplete working.

๐Ÿ“ฆ Which tool/library version are you using?

package.json

{
  "name": "cucumber-test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "cucumber-js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@cucumber/cucumber": "^8.9.0"
  },
  "dependencies": {
    "chai": "^4.3.7"
  }
}

Extension is 1.6.0
VS is 1.73.1

๐Ÿ”ฌ How could we reproduce it?

Steps to reproduce the behavior:

  1. Create a feature with a step
  2. Create a step to that feature with .js
  3. Add to the setting:
   "cucumber.glue": [
         "features/**/*.js"
   ]

Steps highlighting shows "Undefined step" warning on Fedora Linux

๐Ÿ‘“ What did you see?

"Undefined step" error occurs when creating scenario with data tables for each step of given/when/then. Also params are not highlighted properly.

โœ… What did you expect to see?

No error. All params to be highlighted.

๐Ÿ“ฆ Which tool/library version are you using?

Fedora Linux 36
Kernel Version 6.0.5-200.fc36.x86_64 (64-bit)
KDE Plasma 5.25.5

Visual Studio Code 1.73.0 | Dark+ (default dark)
Cucumber 1.5.1
TypeScript 4.6.2
jest 27.5.1
jest-cucumber 3.0.1

๐Ÿ”ฌ How could we reproduce it?

  1. Install stable release of Fedora 36.
  2. Install Visual Studio Code 1.73.0.
  3. Install Cucumber 1.5.1 extension.
  4. Set path to your feature folder.
  5. Create a file "do-stuff.feature" in that folder.
  6. Put The following code in file:
Feature: Do CCC stuff

  Scenario: Get "<AAA>" for given "<BBB>", "<CCC>" and "<DDD>"
    Given Record with "<BBB>" and "<EEE>"
      | BBB    | EEE    |
      | Value1 | Value2 |
    When Run command "do-stuff --DDD <DDD> --CCC <CCC>"
      | DDD    | CCC    |
      | Value3 | Value4 |
    Then "CCC" table contains record with "<CCC>"
      | CCC    |
      | Value4 |
    And "CCC-sub" table contains record with "<DDD>", "<CCC>", "<BBB>" and "<AAA>"
      | DDD    | CCC    | BBB    | AAA    |
      | Value3 | Value4 | Value1 | Value5 |
  1. See the error. All keywords of given/when/then/and will be highlighted with:
Undefined step: Record with "BBB" and "EEE"

HighlightError

๐Ÿ“š Any additional context?

I've noticed that if I add "Examples:" section, then all errors are gone and params are highlighted correctly. Even when examples section is empty.

NoErrors

Is Python supported?

๐Ÿค” What's the problem you're trying to solve?

There are many languages that you support, but not the Python :(

Autocompletion should suggest patterns associated with the specified context/state only

๐Ÿค” What's the problem you're trying to solve?

When I type 'Given...', the autocompletion suggestions include 'When' and 'Then' statements; those aren't valid if the first word in the line is 'Given'. Similarly when I begin a 'When' or 'Then' statement, the autocompletion suggestions aren't filtered to include only 'When' or 'Then' steps; they include everything that appears to be a textual match.

Offering too many suggestions, including suggestions that aren't valid in the current context, clutters the UI and makes it more difficult for the user to find the suggestions that are actually useful. Novice users could also be misled into writing invalid Gherkin.

โœจ What's your proposed solution?

Modify the autocompletion logic so that it:

  1. Maintains state - does this 'And' statement follow a 'Given', a 'When', or a 'Then'? (The first word in the line being 'Given', 'When', or 'Then' is the simplest case of this.)
  2. Sorts the autocompletion suggestions into three lists - Given, Whens, and Thens.
  3. Searches only the state-appropriate list for autocompletion suggestions.

VS Code extension cannot contact Cucumber Language Server

Since yesterday my Cucumber extension in VS Code has stopped working,

[Error - 9:40:58 AM] Server initialization failed.
Message: Request initialize failed with message: abort(Assertion failed: bad export type for tree_sitter_c_sharp_external_scanner_create: undefined). Build with -s ASSERTIONS=1 for more info.
Code: -32603
[Error - 9:40:58 AM] Cucumber Language Server client: couldn't create connection to server.
Message: Request initialize failed with message: abort(Assertion failed: bad export type for tree_sitter_c_sharp_external_scanner_create: undefined). Build with -s ASSERTIONS=1 for more info.
Code: -32603

Scoping for undefined steps within different step definition file paths

๐Ÿค” What's the problem you're trying to solve?

I'm having trouble with the linter when it comes to keeping the linting rules contained to a single folder, stepDefinitions with the exact same name in one feature folder will say that is is a valid step in a different feature.

It's frustrating because I want it to be scoped and this would help me catch errors earlier on in my development.

Currently I have this setup for the workspace:

"cucumber.features": [
    "apps/**/*/src/e2e/**/*.feature"
],
"cucumber.glue": [
    "apps/**/*/src/e2e/**/*.ts",
]

If I have a folder for view and a folder for create. I want my stepDefinitions to be scoped to those folders. E.g. view/view.feature might have the stepDefinition Given the "view" heading is displayed and create/create.feature might have the stepDefinition Given the "create" heading is displayed.

If I have the definition implemented in view/view.ts (Given("the {string} heading is displayed", ...)), this should satisfy the linter for the view.feature file and that alone, I EXPECT the create.feature stepDefinition to still be undefined, however it is picking up the file from the view.

โœจ What's your proposed solution?

My pre-processor picks up this scoped way of working with the following config in locating step definitions:

path.resolve(process.cwd(), './src/e2e/[filepath]/**/*.{js,ts}'),
path.resolve(process.cwd(), './src/e2e/[filepath].{js,ts}'),

However I can't apply that [filepath] method to the vscode extension settings because it doesn't do anything.

โ› Have you considered any alternatives or workarounds?

Right now I'm just dealing with it.

๐Ÿ“š Any additional context?

Maybe this is a feature that already exists, but it isn't documented anywhere.

Omit quotations from string parameter suggestions

๐Ÿ‘“ What did you see?

When there is a step with Cucumber expression {string} then after selecting this suggestion:

  1. all text including double quotes is selected
  2. VS code is suggesting some values for parameter itself (I didn't find out what is mechanism e.g from currently opened file etc)

image

image

โœ… What did you expect to see?

  1. only text inside double quotes is selected
  2. default value should be just empty string because there is very little chance to have valid suggestion for parameter

Surprisingly it works for regular expression e.g /^PATCH request to "(.*)" with body:$/
Also it's ok with Cucumber expression {int} because there is no need for double quotes.

๐Ÿ“ฆ Which tool/library version are you using?

Cucumber plugin: v1.7.0, VS code: 1.74.2

๐Ÿ”ฌ How could we reproduce it?

Steps to reproduce the behavior:

Install Cucumber extension v1.7 onto latest VS Code
Have step definition with Cucumber expression {string}
Create any feature file
Use autocomplete suggestion for this step

Inline `#` considered a comment with syntax highlighting

๐Ÿ‘“ What did you see?

When I use "#" (hash) in the step statement, it will highlight the following text as a comment

โœ… What did you expect to see?

According to the documentation, # should not be considered as a comment when there is text before #

Comments are only permitted at the start of a new line, anywhere in the feature file. They begin with zero or more spaces, followed by a hash sign (#) and some text.

๐Ÿ“ฆ Which tool/library version are you using?

I am using CucumberOpen.cucumber-official v1.7.0

๐Ÿ”ฌ How could we reproduce it?

Steps to reproduce the behavior:

  1. Install CucumberOpen.cucumber-official version 1.7.0
  2. Open a feature file with any name
  3. Copy and paste the below content
Feature: This is the example of using hash character

  # this is a real coment
  Scenario: This is a scenario
    Given There is # after Given keyword
    When I enable CucumberOpen.cucumber-official 
    Then I should see text before and after # is in same syntax color
  1. See the text after Given keyword has 2 different syntax text color before and after #

image

๐Ÿ“š Any additional context?

<string>\s*(#.*)</string>

Here is the change suggestion

<string>^\s*(#.*)</string>

Step recognised but not highlighted/linking to Step Definition when Scenario Outline parameter is used

Given('I have a Dream', async () => {
  // Expect things
})
Scenario Outline: User can jump to step definition with a parameter: <parameter>
    Given I have a <param> # Does not highlight/link but is recognized/defined
    Examples: 
      | param |
      | Dream |

Also, in Scenario Outlines undefined steps are always recognized as defined when they aren't, no undefined warning is issued

Scenario Outline: User can recognize undefined steps in Scenario Outlines
    Given I have a something that is undefined # Recognized as defined when it should not
    Examples: 
      | param |
      | Dream |

Support Multi-Root Workspaces

๐Ÿ‘“ What did you see?

Not working in multi-root workspaces (only root folder works).

๐Ÿ“ฆ Which tool/library version are you using?

node: 14.20.0
vscode: 1.69.2
@cucumber/cucumber : 8.5.1
extension version: 1.2.8

๐Ÿ”ฌ How could we reproduce it?

New Folder. Add:

add package.json

    "name": "testing",
    "private": true,
    "dependencies": {
        "@cucumber/cucumber": "^8.5.1"
    }
}

add foo.code-workspace

{
  "folders": [
    {
      "name": "[root]",
      "path": "."
    },
    {
      "name": "lib",
      "path": "lib",
    }
  ], 
  "settings": {
    "cucumber.features": [
      "./spec/features/*.feature"
    ],
    "cucumber.glue": [
      "./spec/steps/**/*.step.ts"
    ]
  }

add ./lib/spec/features/test.feature

Feature: Demo
  Scenario: Check
    When the greeter says hello
    Then I should have heard "hello"

add ./lib/spec/steps/test.step.ts

import {When, Then} from '@cucumber/cucumber';

When('the greeter says hello', function () {
  this.msg = "hello;"
});

Then('I should have heard {string}', function (expectedResponse) {
  this.whatIHeard == expectedResponse;
});

Open as Workspace foo.code-workspace

Navigate to Lib Workspace Folder in the Explorer

Click on feature file to trigger index

๐Ÿ“š Any additional context?

Extension is unable to locate features or glue when in a workspace folder:

Info  - 14:14:22] Reindexing...
[Info  - 14:14:22] * Found 0 feature file(s) in ["./spec/features/*.feature"]
[Info  - 14:14:22] * Found 0 steps in those feature files
[Info  - 14:14:22] * Found 0 glue file(s) in ["./spec/steps/**/*.step.ts"]
[Info  - 14:14:22] * Found 0 parameter types in those glue files
[Info  - 14:14:22] * Found 0 step definitions in those glue files
[Info  - 14:14:22] * Built 0 suggestions for auto complete

Copy the spec folder into the [root] workspace and open the feature file via the root, and it will work:

[Info  - 14:24:37] Reindexing...
[Info  - 14:24:37] * Found 1 feature file(s) in ["./spec/features/*.feature"]
[Info  - 14:24:37] * Found 2 steps in those feature files
[Info  - 14:24:37] * Found 1 glue file(s) in ["./spec/steps/**/*.step.ts"]
[Info  - 14:24:37] * Found 0 parameter types in those glue files
[Info  - 14:24:37] * Found 2 step definitions in those glue files
[Info  - 14:24:37] * Built 2 suggestions for auto complete

Tried:

I tried prefixing the glob paths with ${workspaceFolder} but it didn't work.

Default glue paths should support multi-root and nested workspaces

๐Ÿ‘“ What did you see?

When I open a workspace that has tests/features/* structure somewhere in it, every step is marked as Undefined.

image

โœ… What did you expect to see?

Should the extension use the settings...

{
    "cucumber.glue": [
        "src/test/**/*.java",
        "features/**/*.ts",
        "features/**/*.tsx",
        "features/**/*.php",
        "features/**/*.py",
        "tests/**/*.py",
        "tests/**/*.rs",
        "features/**/*.rs",
        "features/**/*.rb",
        "*specs*/**/.cs"
    ]
}

...to find the specified structure across the opened workspace and associate .feature files with corresponding matchers? Users currently have to tune their local workspace settings:

// in a local .vscode/settings.json
{
    "cucumber.glue": [
        "path/to/dir/tests/**/*.ext"
    ]
}

... so that extension can find the matchers.

๐Ÿ“ฆ Which tool/library version are you using?

Name: Cucumber
Id: CucumberOpen.cucumber-official
Description: Cucumber for Visual Studio Code
Version: 1.5.1
Publisher: Cucumber
VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=CucumberOpen.cucumber-official

๐Ÿ”ฌ How could we reproduce it?

Move the tests/features/ dir (and possibly re-configure your build system for this change) in some nested dir, not in the top-level dir, observe the Undefined step and no goto definition in the editor for every step in the .features files. Default VScode settings.

MRE: https://github.com/zohnannor/cucumber-vscode-mre/tree/workspace


This text was originally generated from a template, then edited by hand. You can modify the template here.

Formatting configuration

๐Ÿค” What's the problem you're trying to solve?

We were previously using the Gherkin Full Support vscode plugin. This plugin had settings that allowed you to override the default formatting.

โœจ What's your proposed solution?

possibly adding a setting that allows for overriding the default formatting.

โ› Have you considered any alternatives or workarounds?

Don't know of anything.

๐Ÿ“š Any additional context?

The one formatting thing we really cared about was indentation of the 'And' keyword. As it made things a bit more readable.

Can't find steps that are in the common folder

๐Ÿ‘“ What did you see?

โœ… What did you expect to see?

๐Ÿ“ฆ Which tool/library version are you using?

๐Ÿ”ฌ How could we reproduce it?

Steps to reproduce the behavior:

  1. Install '...' version '...'
  2. Create a file called '....'
  3. Run command '....'
  4. See error '....'

๐Ÿ“š Any additional context?


This text was originally generated from a template, then edited by hand. You can modify the template here.

Failure to start extension under latest VS Code

๐Ÿ‘“ What did you see?

Upon opening up any *.feature file, I see:

  Message: Request initialize failed with message: abort(Assertion failed: bad export type for `tree_sitter_c_sharp_external_scanner_create`: undefined). Build with -s ASSERTIONS=1 for more info.
  Code: -32603 

No syntax highlighting, or any features are then produced.

โœ… What did you expect to see?

I expected the extension to start properly, and have syntax highlighting, etc.

๐Ÿ“ฆ Which tool/library version are you using?

Cucumber VS Code Plugin: v1.7.0
VS Code (Insiders):

Commit: 47c4c928bdaf0c81996d2dcce4286f63b9f26afd
Date: 2023-04-26T17:51:58.920Z (5 hrs ago)
Electron: 22.4.8
Chromium: 108.0.5359.215
Node.js: 16.17.1
V8: 10.8.168.25-electron.0
OS: Darwin arm64 22.4.0
Sandboxed: Yes

My guess is that it has to do with:

  • Electron version (22.4.8 vs 19.1.11)

๐Ÿ”ฌ How could we reproduce it?

Be on the latest version of VS Code
Open up any *.feature file.

EDIT: This relates to -- microsoft/vscode#166265

Highlight unused step definitions

๐Ÿค” What's the problem you're trying to solve?

As the chaos of normal development with multiple devs/teams continues, it is not unusual for a feature file to change. To keep the code base neat, it is a good idea to remove any step definitions that are no longer in use after such changes. However, finding such unused step definitions manually is hard work. Perhaps this plugin can do so automatically.

โœจ What's your proposed solution?

Add an inspection that highlights unused step definitions in code, or a command to output a list of unused step definitions.

โ› Have you considered any alternatives or workarounds?

Doing this manually is possible, but error-prone.

There are tools that plugin to the various cucumber runtimes to detect unused step definitions. However, they're not available for every runtime supported by this plugin.

๐Ÿ“š Any additional context?

For the project I'm working on right now I'm using Cypress with a pre-processor. I was happy to find that this plugin had no trouble recognizing the step definitions anyway, so navigation and auto-complete work.


This text was originally generated from a template, then edited by hand. You can modify the template here.

Support JS language

๐Ÿค” What's the problem you're trying to solve?

With over 17 million downloads and users in over 90 countries, Cypress.io is the leader in browser-based test automation for the web.
Cypress is a JavaScript end to end testing framework, but this language is not already supported.

โœจ What's your proposed solution?

A JavaScript language support

โ› Have you considered any alternatives or workarounds?

no alternative

๐Ÿ“š Any additional context?

no

Issues with undefined steps on Windows

๐Ÿ‘“ What did you see?

If i have an undefined step using When or Given, and then select the "Define in filepath..." option, when i click that contextual menu option, nothing happens. Also when trying to use the autocomplete, it is not displaying suggestions accordingly. Go to definition doesn;t work as well.

โœ… What did you expect to see?

It should add for example a When or Given block to that file and should highlight and navigate correctly to definitions

๐Ÿ“ฆ Which tool/library version are you using?

Typescript 4.x, using cucumber 7.3.1

๐Ÿ”ฌ How could we reproduce it?

Steps to reproduce the behavior:

  1. Use Windows 11
  2. Use VS Code 1.67.2
  3. Install Cucumber extension
  4. In the workspace settings of a project have the following piece of config:
    "cucumber.glue": [ "steps/**/*.ts", ],
  5. Have a folder structure similar to this:
    --> features/e2e/.feature
    --> steps/e2e/
    .ts'
  6. See error
    image
    The path that is referencing looks like "\\e:**\steps\e2e\login.steps.ts\", and it is being treated by vs code as a directory

๐Ÿ“š Any additional context?

This is the folder structure being used for features and steps being in the root of the project
image


This text was originally generated from a template, then edited by hand. You can modify the template here.

Todays broken Gherkin to implementation steps navigation

Visual Studio Code
Version: 1.78.0
OS: Windows 10

I was using CucumberJS together with Node 16.17.1 using Visual Studio code and the Cucumber plugin for convenient navigation between features and implementation steps. I did last git commit near 24 hours ago and all was working fine.

But when I opened the project today I found at once after start some errors in output console:

[Error - 7:26:30 AM] Server initialization failed.
Message: Request initialize failed with message: abort(Assertion failed: bad export type for tree_sitter_c_sharp_external_scanner_create: undefined). Build with -s ASSERTIONS=1 for more info.
Code: -32603
[Error - 7:26:30 AM] Cucumber Language Server client: couldn't create connection to server.
Message: Request initialize failed with message: abort(Assertion failed: bad export type for tree_sitter_c_sharp_external_scanner_create: undefined). Build with -s ASSERTIONS=1 for more info.
Code: -32603

My collogues with other valid projects using CucumberJS started to face the same issue yesterday.

Concerning that it started for multiple people exactly yesterday without changes in environments or projects themselves.

Is there a chance that it is a problem on side of plugin itself?

Do not remove commented lines

๐Ÿ‘“ What did you see?

Formatting .feature file removes all commented lines

โœ… What did you expect to see?

commented lines are indented correctly but left intact

๐Ÿ“ฆ Which tool/library version are you using?

latest at 16 May 2022

๐Ÿ”ฌ How could we reproduce it?

Comment a Given/etc line. It will be prefixed with a #
Choose to format the feature file
The commented out line will be removed !!

๐Ÿ“š Any additional context?

No. Makes it hard to keep this extension if it is going to remove my comments and commented out lines

Steps where not resolved in all cases

๐Ÿ‘“ What did you see?

image

โœ… What did you expect to see?

All steps should be detected.

๐Ÿ“ฆ Which tool/library version are you using?

Windows10
vscode 1.74.3
Cucumber ext. v1.7.0

๐Ÿ”ฌ How could we reproduce it?

Steps to reproduce the behavior:

  1. Clone https://github.com/tbeede/python-cucumber.git
  2. Install Cucumber 1.7.0
  3. Open file features/create_folder.feature
  4. The following line should not be resolved as expacted.
    https://github.com/tbeede/python-cucumber/blob/master/features/create_folder.feature#L7

๐Ÿ“š Any additional context?

settings.json

{
    "cucumber.glue": [

        "src/test/**/*.java",
        "features/**/*.js",
        "features/**/*.jsx",
        "features/**/*.ts",
        "features/**/*.tsx",
        "features/**/*.php",
        "features/**/*.py",
        "tests/**/*.py",
        "tests/**/*.rs",
        "features/**/*.rs",
        "features/**/*.rb",
        "*specs*/**/.cs"
    ],
    "cucumber.features": [
        

        "src/test/**/*.feature",
        "features/**/*.feature",
        "tests/**/*.feature",
        "*specs*/**/.feature"
    ],
}

Support vscode outline panel for feature files

๐Ÿค” What's the problem you're trying to solve?

For large feature files, it's very convient to preview the structure with vscode outline panel

โœจ What's your proposed solution?

Support vscode outline panel

โ› Have you considered any alternatives or workarounds?

I haven't found any workarounds.

๐Ÿ“š Any additional context?


This text was originally generated from a template, then edited by hand. You can modify the template here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.