filter

package
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Mar 3, 2023 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NormalizeDiffPath

func NormalizeDiffPath(diffpath string, strip int) string

NormalizeDiffPath return path normalized path from given path in diff with strip.

func NormalizePath

func NormalizePath(path, workdir, projectRelPath string) string

NormalizePath return normalized path with workdir and relative path to project.

Types

type DiffFilter

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

DiffFilter filters lines by diff.

func NewDiffFilter

func NewDiffFilter(diff []*diff.FileDiff, strip int, cwd string, mode Mode) *DiffFilter

NewDiffFilter creates a new DiffFilter.

func (*DiffFilter) DiffLine

func (df *DiffFilter) DiffLine(path string, lnum int) *diff.Line

DiffLine returns diff data from given new path and lnum. Returns nil if not found.

func (*DiffFilter) ShouldReport

func (df *DiffFilter) ShouldReport(path string, lnum int) (bool, *diff.FileDiff, *diff.Line)

ShouldReport returns true, if the given path should be reported depending on the filter Mode. It also optionally return diff file/line.

type FilteredDiagnostic

type FilteredDiagnostic struct {
	Diagnostic   *rdf.Diagnostic
	ShouldReport bool
	// false if the result is outside diff files.
	InDiffFile bool
	// true if the result is inside a diff hunk.
	// If it's a multiline result, both start and end must be in the same diff
	// hunk.
	InDiffContext bool

	// Similar to InDiffContext but for suggestion. True if first
	// suggestion is in diff context.
	FirstSuggestionInDiffContext bool

	// Source lines text of the diagnostic message's line-range. Key is line
	// number. If a suggestion range is broader than the diagnostic message's
	// line-range, suggestions' line-range are included too.  It contains a whole
	// line even if the diagnostic range have column fields.
	// Optional. Currently available only when it's in diff context.
	SourceLines map[int]string

	OldPath string
	OldLine int
}

FilteredDiagnostic represents Diagnostic with filtering info.

func FilterCheck

func FilterCheck(results []*rdf.Diagnostic, diff []*diff.FileDiff, strip int,
	cwd string, mode Mode) []*FilteredDiagnostic

FilterCheck filters check results by diff. It doesn't drop check which is not in diff but set FilteredDiagnostic.ShouldReport field false.

type Mode

type Mode int

Mode represents enumeration of available filter modes

const (
	// ModeDefault represents default mode, which means users doesn't specify
	// filter-mode. The behavior can be changed depending on reporters/context
	// later if we want. Basically, it's same as ModeAdded because it's most safe
	// and basic mode for reporters implementation.
	ModeDefault Mode = iota
	// ModeAdded represents filtering by added/changed diff lines.
	ModeAdded
	// ModeDiffContext represents filtering by diff context.
	// i.e. changed lines +-N lines (e.g. N=3 for default git diff).
	ModeDiffContext
	// ModeFile represents filtering by changed files.
	ModeFile
	// ModeNoFilter doesn't filter out any results.
	ModeNoFilter
)

func (*Mode) Set

func (mode *Mode) Set(value string) error

Set implements the flag.Value interface

func (*Mode) String

func (mode *Mode) String() string

String implements the flag.Value interface

Jump to

Keyboard shortcuts

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