util

package
v1.4.2-0...-d7b39fe Latest Latest
Warning

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

Go to latest
Published: Jan 1, 2020 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	// Version is the version number or commit hash
	Version = "0.0.0-unknown"
	// Semantic version
	SemVersion semver.Version
	// CommitHash is the commit this version was built on
	CommitHash = "Unknown"
	// CompileDate is the date this binary was compiled on
	CompileDate = "Unknown"
	// Debug logging
	Debug = "ON"
)

Functions

func Abs

func Abs(n int) int

Abs is a simple absolute value function for ints

func Clamp

func Clamp(val, min, max int) int

Clamp clamps a value between min and max

func EscapePath

func EscapePath(path string) string

EscapePath replaces every path separator in a given path with a %

func FSize

func FSize(f *os.File) int64

FSize gets the size of a file

func GetCharPosInLine

func GetCharPosInLine(b []byte, visualPos int, tabsize int) int

GetCharPosInLine gets the char position of a visual x y coordinate (this is necessary because tabs are 1 char but 4 visual spaces)

func GetLeadingWhitespace

func GetLeadingWhitespace(b []byte) []byte

GetLeadingWhitespace returns the leading whitespace of the given byte array

func GetMemStats

func GetMemStats() string

GetMemStats returns a string describing the memory usage and gc time used so far

func GetModTime

func GetModTime(path string) (time.Time, error)

GetModTime returns the last modification time for a given file

func GetPathAndCursorPosition

func GetPathAndCursorPosition(path string) (string, []string)

GetPathAndCursorPosition returns a filename without everything following a `:` This is used for opening files like util.go:10:5 to specify a line and column Special cases like Windows Absolute path (C:\myfile.txt:10:5) are handled correctly.

func IntOpt

func IntOpt(opt interface{}) int

IntOpt turns a float64 setting to an int

func IsBytesWhitespace

func IsBytesWhitespace(b []byte) bool

IsBytesWhitespace returns true if the given bytes are all whitespace

func IsNonAlphaNumeric

func IsNonAlphaNumeric(c rune) bool

func IsSpaces

func IsSpaces(str []byte) bool

IsSpaces checks if a given string is only spaces

func IsSpacesOrTabs

func IsSpacesOrTabs(str []byte) bool

IsSpacesOrTabs checks if a given string contains only spaces and tabs

func IsWhitespace

func IsWhitespace(c rune) bool

IsWhitespace returns true if the given rune is a space, tab, or newline

func IsWordChar

func IsWordChar(r rune) bool

IsWordChar returns whether or not the string is a 'word character' Word characters are defined as numbers, letters, or '_'

func LuaGetLeadingWhitespace

func LuaGetLeadingWhitespace(s string) string

func LuaIsWordChar

func LuaIsWordChar(s string) bool

func LuaRuneAt

func LuaRuneAt(str string, runeidx int) string

func MakeRelative

func MakeRelative(path, base string) (string, error)

MakeRelative will attempt to make a relative path between path and base

func Max

func Max(a, b int) int

Max takes the max of two ints

func Min

func Min(a, b int) int

Min takes the min of two ints

func ParseBool

func ParseBool(str string) (bool, error)

ParseBool is almost exactly like strconv.ParseBool, except it also accepts 'on' and 'off' as 'true' and 'false' respectively

func ParseSpecial

func ParseSpecial(s string) string

func ReplaceHome

func ReplaceHome(path string) (string, error)

TODO: consider changing because of snap segfault ReplaceHome takes a path as input and replaces ~ at the start of the path with the user's home directory. Does nothing if the path does not start with '~'.

func RunePos

func RunePos(b []byte, i int) int

RunePos returns the rune index of a given byte index Make sure the byte index is not between code points

func SliceEnd

func SliceEnd(slc []byte, index int) []byte

SliceEnd returns a byte slice where the index is a rune index Slices off the start of the slice

func SliceEndStr

func SliceEndStr(str string, index int) string

SliceEndStr is the same as SliceEnd but for strings

func SliceStart

func SliceStart(slc []byte, index int) []byte

SliceStart returns a byte slice where the index is a rune index Slices off the end of the slice

func SliceStartStr

func SliceStartStr(str string, index int) string

SliceStartStr is the same as SliceStart but for strings

func SliceVisualEnd

func SliceVisualEnd(b []byte, n, tabsize int) ([]byte, int, int)

SliceVisualEnd will take a byte slice and slice off the start up to a given visual index. If the index is in the middle of a rune the number of visual columns into the rune will be returned It will also return the char pos of the first character of the slice

func Spaces

func Spaces(n int) string

Spaces returns a string with n spaces

func StringWidth

func StringWidth(b []byte, n, tabsize int) int

StringWidth returns the visual width of a byte array indexed from 0 to n (rune index) with a given tabsize

func Tic

func Tic(s string) time.Time

func Toc

func Toc(start time.Time)

Types

This section is empty.

Jump to

Keyboard shortcuts

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