syntax

package module
v1.10.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 10, 2023 License: BSD-3-Clause Imports: 8 Imported by: 4

README

syntax

Syntax highlight text.

This is a fork of syntaxhighlight.

Modifications have been made to output syntax highlighted text in a format that suites textoutput instead of HTML, so that it can be used in terminal applications.

  • License: BSD 3-Clause
  • Version: 1.10.9

Documentation

Overview

Package syntax provides syntax highlighting for code. It currently uses a language-independent lexer and performs decently on JavaScript, Java, Ruby, Python, Go, and C.

Index

Constants

This section is empty.

Variables

View Source
var DefaultTextConfig = TextConfig{
	AndOr:         "red",
	AssemblyEnd:   "lightyellow",
	Class:         "white",
	Comment:       "darkgray",
	Decimal:       "red",
	Dollar:        "white",
	Keyword:       "red",
	Literal:       "white",
	Mut:           "magenta",
	Plaintext:     "white",
	Private:       "red",
	Protected:     "red",
	Public:        "red",
	Punctuation:   "red",
	Self:          "magenta",
	Star:          "white",
	Static:        "lightyellow",
	String:        "lightwhite",
	Tag:           "white",
	TextAttrName:  "white",
	TextAttrValue: "white",
	TextTag:       "white",
	Type:          "white",
	Whitespace:    "",
}

DefaultTextConfig provides class names that match the color names of textoutput tags: https://github.com/xyproto/textoutput

View Source
var Keywords = map[string]struct{}{}/* 187 elements not displayed */

Functions

func Annotate

func Annotate(src []byte, a Annotator, m mode.Mode) (annotate.Annotations, error)

func AsText

func AsText(src []byte, m mode.Mode, options ...Option) ([]byte, error)

AsText converts source code into an Text-highlighted version; It accepts optional configuration parameters to control rendering (see OrderedList as one example)

func NewScanner

func NewScanner(src []byte) *scanner.Scanner

NewScanner is a helper that takes a []byte src, wraps it in a reader and creates a Scanner.

func NewScannerReader

func NewScannerReader(src io.Reader) *scanner.Scanner

NewScannerReader takes a reader src and creates a Scanner.

func Print

func Print(s *scanner.Scanner, w io.Writer, p Printer, m mode.Mode) error

Types

type Annotator

type Annotator interface {
	Annotate(start int, kind Kind, tokText string) (*annotate.Annotation, error)
}

type Kind

type Kind uint8

Kind represents a syntax highlighting kind (class) which will be assigned to tokens. A syntax highlighting scheme (style) maps text style properties to each token kind.

const (
	Whitespace Kind = iota
	AndOr
	AssemblyEnd
	Class
	Comment
	Decimal
	Dollar
	Literal
	Keyword
	Mut
	Plaintext
	Private
	Protected
	Public
	Punctuation
	Self
	Star
	Static
	String
	Tag
	TextAttrName
	TextAttrValue
	TextTag
	Type
)

A set of supported highlighting kinds

func (Kind) GoString

func (i Kind) GoString() string

type Option

type Option func(options *TextConfig)

Option is a type of the function that can modify one or more of the options in the TextConfig structure.

type Printer

type Printer interface {
	Print(w io.Writer, kind Kind, tokText string) error
}

Printer implements an interface to render highlighted output (see TextPrinter for the implementation of this interface)

type TextAnnotator

type TextAnnotator TextConfig

func (TextAnnotator) Annotate

func (a TextAnnotator) Annotate(start int, kind Kind, tokText string) (*annotate.Annotation, error)

type TextConfig

type TextConfig struct {
	AndOr         string
	AssemblyEnd   string
	Class         string
	Comment       string
	Decimal       string
	Dollar        string
	Keyword       string
	Literal       string
	Mut           string
	Plaintext     string
	Private       string
	Protected     string
	Public        string
	Punctuation   string
	Self          string
	Star          string
	Static        string
	String        string
	Tag           string
	TextAttrName  string
	TextAttrValue string
	TextTag       string
	Type          string
	Whitespace    string
}

TextConfig holds the Text class configuration to be used by annotators when highlighting code.

func (TextConfig) GetClass

func (c TextConfig) GetClass(kind Kind) string

GetClass returns the set class for a given token Kind.

type TextPrinter

type TextPrinter TextConfig

TextPrinter implements Printer interface and is used to produce Text-based highligher

func (TextPrinter) Print

func (p TextPrinter) Print(w io.Writer, kind Kind, tokText string) error

Print is the function that emits highlighted source code using <color>...<off> wrapper tags

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL