code-syntax
TypeScript icon, indicating that this package has built-in type declarations

4.0.0 • Public • Published

code-syntax

Code syntax highlight Web Component

npm i code-syntax pnpm add code-syntax yarn add code-syntax

Examples

# web

    Try it live

    # view source example/web.ts

    import 'plenty-themes/cobalt2.css'
    import 'plenty-themes/laser.css'
    import 'code-syntax/themes/default.css'
    
    import { CodeSyntaxElement, languages } from 'code-syntax'
    import js from 'code-syntax/languages/js'
    
    customElements.define('code-syntax', CodeSyntaxElement)
    
    languages.js = js // can also be import(code-syntax.) directly
    
    document.body.innerHTML = `
    <code-syntax id="demo" style="display:inline-flex;" language="js" theme="laser">class Vector {
      x: number
      y: number
      constructor(x: number, y: number) {
        this.x = x
        this.y = y
      }
      add(v: Vector): Vector {
        return new Vector(this.x + v.x, this.y + v.y)
      }
    }
    </code-syntax>
    `

API

# CodeSyntaxElement src/element.ts#L45

# language  =  $.String src/element.ts#L48

    undefined | string

# onTextContent src/element.ts#L56

    # (textContent)

      # textContent

        string

      (textContent)  =>

        void

# onmounted
# onunmounted
# root  =  ... src/element.ts#L46

    ShadowRoot

# syntax src/element.ts#L51
# theme  =  $.String src/element.ts#L49

    undefined | string

# mounted($) src/element.ts#L58

mounted($)  =>

    void
# PatchOptions src/util.ts#L3
# SyntaxDefinition src/syntax.ts#L6
# RegExpMap src/syntax.ts#L3
# RegExpMapped src/syntax.ts#L4
# SyntaxOrImport src/syntax.ts#L10
# languages  =  {} src/element.ts#L8
# compile(def, keys) – Compiles a syntax definition. src/syntax.ts#L24

const r = await compile({
  foo: /[a-z]/,
  bar: /[0-9]/,
})
# def – The syntax definition to compile. Can be a promise returned by import().
# keys  =  ...

    Set<string>

compile(def, keys)  =>

# patchElements(elements, Partial<PatchOptions>) src/util.ts#L8
# patchPreCodeElements(opts) src/util.ts#L27

    # opts

    patchPreCodeElements(opts)  =>

      void
# syntax(regexp, s) – Syntax highlights a string as html with the given syntax. src/syntax.ts#L68

const regexp = await compile({
  foo: /[a-z]+/,
  bar: [
    /[0-9]+/,
    {
      bar: /[0-5]+/,
    },
  ],
})
const html = syntax(regexp, 'hello 123 789 world')
# regexp – The syntax definition returned by compile()
# s – The string to highlight.

    string

syntax(regexp, s)  =>

    string

Credits

Contributing

Fork or edit and submit a PR.

All contributions are welcome!

License

MIT © 2022 stagas

Package Sidebar

Install

npm i code-syntax

Weekly Downloads

49

Version

4.0.0

License

MIT

Unpacked Size

1.16 MB

Total Files

65

Last publish

Collaborators

  • stagas