highlight_diff

package module
v0.0.0-...-22f8258 Latest Latest
Warning

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

Go to latest
Published: Jul 8, 2023 License: MIT Imports: 7 Imported by: 3

README

highlight_diff

Go Reference

Package highlight_diff provides syntaxhighlight.Printer and syntaxhighlight.Annotator implementations for diff format. It implements intra-block character-level inner diff highlighting.

It uses GitHub Flavored Markdown .css class names "gi", "gd", "gu", "gh" for outer blocks, "x" for inner emphasis blocks.

Installation

go get github.com/shurcooL/highlight_diff

License

Documentation

Overview

Package highlight_diff provides syntaxhighlight.Printer and syntaxhighlight.Annotator implementations for diff format. It implements intra-block character-level inner diff highlighting.

It uses GitHub Flavored Markdown .css class names "gi", "gd", "gu", "gh" for outer blocks, "x" for inner emphasis blocks.

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Annotate

func Annotate(src []byte) (annotate.Annotations, error)
Example
anns, err := highlight_diff.Annotate([]byte(`@@ -1,6 +1,6 @@
 language: go
 go:
-  - 1.4
+  - 1.5
 install:
   - go get golang.org/x/tools/cmd/vet
 script:
`))
if err != nil {
	panic(err)
}

goon.DumpExpr(len(anns))
for _, ann := range anns {
	goon.DumpExpr(ann.Start, ann.End)
	goon.DumpExpr(string(ann.Left), string(ann.Right))
	goon.DumpExpr(ann.WantInner)
}
Output:

len(anns) = (int)(1)
ann.Start = (int)(0)
ann.End = (int)(16)
string(ann.Left) = (string)("<span class=\"gu input-block\">")
string(ann.Right) = (string)("</span>")
ann.WantInner = (int)(0)

func HighlightedDiffFunc

func HighlightedDiffFunc(leftContent, rightContent string, segments *[2][]*annotate.Annotation, offsets [2]int)

func Print

func Print(s *Scanner, w io.Writer) error

Types

type HTMLAnnotator

type HTMLAnnotator HTMLConfig

func (HTMLAnnotator) Annotate

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

type HTMLConfig

type HTMLConfig []string

type HTMLPrinter

type HTMLPrinter HTMLConfig

func (HTMLPrinter) Print

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

type Scanner

type Scanner struct {
	// contains filtered or unexported fields
}

func NewScanner

func NewScanner(src []byte) *Scanner

func (*Scanner) Err

func (s *Scanner) Err() error

func (*Scanner) Scan

func (s *Scanner) Scan() bool

func (*Scanner) Token

func (s *Scanner) Token() ([]byte, syntaxhighlight.Kind)

Jump to

Keyboard shortcuts

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