0.0.2 • Published 3 years ago

@ltipton/react-gherkin-editor v0.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

React Gherkin Editor

A Gherkin language editor for React.

Version CI Dependencies License

Introduction

React Gherkin Editor is a wrapper arround React Ace Editor specially designed for Gherkin.

It was originally forked from this repo. I removed a number of dependencies, and changed the styles to better suite my needs

Features:

  • Gherkin syntax highlighting
  • Gherkin keyword snippets
  • Easy to provide step autocompletions (Promise based)
  • Gherkin I18n support
  • Special theme herkin for writing feature files

Installation

Using npm:

npm install --save @ltipton/react-gherkin-editor

Using yarn:

yarn add @ltipton/react-gherkin-editor

Basic Usage

import React from 'react'
import { render } from 'react-dom'
import ReactGherkinEditor from '@ltipton/react-gherkin-editor'

const root = document.createElement('div')
document.body.appendChild(root)

const initialValue = `Feature: Serve coffee
  As a coffee lover
  I can get coffee from the machine
  So I can enjoy the rest of the day

  Scenario: Simple use
    # Well, sometimes, you just get a coffee.
    Given the coffee machine is started
    When I take a coffee
    Then coffee should be served
    And message "Please take your coffee" should be printed`

const steps = [
  'I start the coffee machine using language "lang"',
  'I shutdown the coffee machine',
  'message "message" should be displayed'
]

const onValueChange = console.log

const autoCompleteFunction = async (_keyword, text) => {
  const matches = steps.filter(step => step.startsWith(text))

  const completions = matches.map(match => ({
    caption: match,
    value: match,
    score: Math.floor(Math.random() * Math.floor(100)),
    meta: 'Step'
  }))

  return completions
}

render(
  <ReactGherkinEditor
    initialValue={initialValue}
    onValueChange={onValueChange}
    autoCompleteFunction={autoCompleteFunction}
    language='en'
    theme='cucumber'
  />,
  root
)

Ace Documentation

React Ace Editor

0.0.2

3 years ago

0.0.1

3 years ago