Package complete implements the code completion algorithm for Elvish.



    This section is empty.


    This section is empty.


    This section is empty.


    type ArgGenerator

    type ArgGenerator func(args []string) ([]RawItem, error)

      ArgGenerator is the type of functions that generate raw candidates for a command argument. It takes all the existing arguments, the last being the argument to complete, and returns raw candidates or an error.

      type CodeBuffer

      type CodeBuffer struct {
      	Content string
      	Dot     int

        CodeBuffer is the same the type in, replicated here to avoid an unnecessary dependency.

        type ComplexItem

        type ComplexItem struct {
        	Stem         string   // Used in the code and the menu.
        	CodeSuffix   string   // Appended to the code.
        	Display      string   // How the item is displayed. If empty, defaults to Stem.
        	DisplayStyle ui.Style // Use for displaying.

          ComplexItem is an implementation of RawItem that offers customization options.

          func (ComplexItem) Cook

          func (ComplexItem) String

          func (c ComplexItem) String() string

          type Config

          type Config struct {
          	// An interface to access the runtime. Complete will return an error if this
          	// is nil.
          	PureEvaler PureEvaler
          	// A function for filtering raw candidates. If nil, no filtering is done.
          	Filterer Filterer
          	// Used to generate candidates for a command argument. Defaults to
          	// Filenames.
          	ArgGenerator ArgGenerator

            Config stores the configuration required for code completion.

            type Filterer

            type Filterer func(ctxName, seed string, rawItems []RawItem) []RawItem

              Filterer is the type of functions that filter raw candidates.

              type PlainItem

              type PlainItem string

                PlainItem is a simple implementation of RawItem.

                func (PlainItem) Cook

                func (PlainItem) String

                func (p PlainItem) String() string

                type PureEvaler

                type PureEvaler interface {
                	EachExternal(func(cmd string))
                	EachSpecial(func(special string))
                	EachVariableInNs(string, func(string))
                	PurelyEvalPrimary(pn *parse.Primary) interface{}
                	PurelyEvalCompound(*parse.Compound) (string, bool)
                	PurelyEvalPartialCompound(*parse.Compound, int) (string, bool)

                  PureEvaler encapsulates the functionality the completion algorithm needs from the language runtime.

                  type RawItem

                  type RawItem interface {
                  	String() string
                  	Cook(parse.PrimaryType) completion.Item

                    RawItem represents completion items before the quoting pass.

                    func FilterPrefix

                    func FilterPrefix(ctxName, seed string, items []RawItem) []RawItem

                      FilterPrefix filters raw items by prefix. It can be used as a Filterer in Config.

                      func GenerateFileNames

                      func GenerateFileNames(args []string) ([]RawItem, error)

                        GenerateFileNames returns filename candidates that are suitable for completing the last argument. It can be used in Config.ArgGenerator.

                        func GenerateForSudo

                        func GenerateForSudo(cfg Config, args []string) ([]RawItem, error)

                          GenerateForSudo generates candidates for sudo.

                          type Result

                          type Result struct {
                          	Name    string
                          	Replace diag.Ranging
                          	Items   []completion.Item

                            Result keeps the result of the completion algorithm.

                            func Complete

                            func Complete(code CodeBuffer, cfg Config) (*Result, error)

                              Complete runs the code completion algorithm in the given context, and returns the completion type, items and any error encountered.