ann

package
v0.0.31 Latest Latest
Warning

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

Go to latest
Published: Jan 8, 2015 License: BSD-3-Clause, MIT Imports: 6 Imported by: 0

Documentation

Overview

Package ann defines types that represent source code annotations.

Index

Constants

View Source
const (
	// Link is a type of annotation that refers to an arbitrary URL
	// (typically pointing to an external web page).
	Link = "link"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Ann

type Ann struct {
	// Repo is the URI of the repository that contains this annotation.
	Repo string `json:",omitempty"`

	// CommitID refers to the commit that contains this annotation.
	CommitID string `db:"commit_id" json:",omitempty"`

	// UnitType is the source unit type that the annotation exists
	// on. It is either the source unit type during whose processing
	// the annotation was detected/created. Multiple annotations may
	// exist on the same file from different source unit types if a
	// file is contained in multiple source units.
	UnitType string `db:"unit_type" json:",omitempty"`

	// Unit is the source unit name that the annotation exists on. See
	// UnitType for more information.
	Unit string `json:",omitempty"`

	// Type is the type of the annotation. See this package's type
	// constants for a list of possible types.
	Type string

	// File is the filename that contains this annotation.
	File string

	// Start is the byte offset of the first byte in the file.
	Start int

	// End is the byte offset of the last byte in the annotation.
	End int `json:",omitempty"`

	// Data contains arbitrary JSON data that is specific to this
	// annotation type (e.g., the link URL for Link annotations).
	Data sqltypes.JSON `json:",omitempty"`
}

An Ann is a source code annotation.

Annotations are unique on (Repo, CommitID, UnitType, Unit, File, Start, End, Type).

func (*Ann) LinkURL

func (a *Ann) LinkURL() (*url.URL, error)

LinkURL parses and returns a's link URL, if a's type is Link and if its Data contains a valid URL (encoded as a JSON string).

func (*Ann) SetLinkURL

func (a *Ann) SetLinkURL(urlStr string) error

SetLinkURL sets a's Type to Link and Data to the JSON representation of the URL string. If the URL is invalid, an error is returned.

type Anns

type Anns []*Ann

func (Anns) Len

func (vs Anns) Len() int

func (Anns) Less

func (vs Anns) Less(i, j int) bool

func (Anns) Swap

func (vs Anns) Swap(i, j int)

type ErrType

type ErrType struct {
	Expected, Actual string // Expected and actual types
	Op               string // The name of the operation or method that was called
}

ErrType indicates that an operation performed on an annotation expected the annotation to be a different type (e.g., calling LinkURL on a non-link annotation).

func (*ErrType) Error

func (e *ErrType) Error() string

Jump to

Keyboard shortcuts

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