plugin

package
v0.0.0-...-1448b23 Latest Latest
Warning

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

Go to latest
Published: Jan 23, 2024 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CodegenService_Generate_FullMethodName = "/plugin.CodegenService/Generate"
)

Variables

View Source
var CodegenService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "plugin.CodegenService",
	HandlerType: (*CodegenServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Generate",
			Handler:    _CodegenService_Generate_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "plugin/codegen.proto",
}

CodegenService_ServiceDesc is the grpc.ServiceDesc for CodegenService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var File_plugin_codegen_proto protoreflect.FileDescriptor

Functions

func RegisterCodegenServiceServer

func RegisterCodegenServiceServer(s grpc.ServiceRegistrar, srv CodegenServiceServer)

Types

type Catalog

type Catalog struct {
	Comment       string    `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"`
	DefaultSchema string    `protobuf:"bytes,2,opt,name=default_schema,json=defaultSchema,proto3" json:"default_schema,omitempty"`
	Name          string    `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	Schemas       []*Schema `protobuf:"bytes,4,rep,name=schemas,proto3" json:"schemas,omitempty"`
	// contains filtered or unexported fields
}

func (*Catalog) Descriptor deprecated

func (*Catalog) Descriptor() ([]byte, []int)

Deprecated: Use Catalog.ProtoReflect.Descriptor instead.

func (*Catalog) GetComment

func (x *Catalog) GetComment() string

func (*Catalog) GetDefaultSchema

func (x *Catalog) GetDefaultSchema() string

func (*Catalog) GetName

func (x *Catalog) GetName() string

func (*Catalog) GetSchemas

func (x *Catalog) GetSchemas() []*Schema

func (*Catalog) ProtoMessage

func (*Catalog) ProtoMessage()

func (*Catalog) ProtoReflect

func (x *Catalog) ProtoReflect() protoreflect.Message

func (*Catalog) Reset

func (x *Catalog) Reset()

func (*Catalog) String

func (x *Catalog) String() string

type Codegen

type Codegen struct {
	Out     string           `protobuf:"bytes,1,opt,name=out,proto3" json:"out,omitempty"`
	Plugin  string           `protobuf:"bytes,2,opt,name=plugin,proto3" json:"plugin,omitempty"`
	Options []byte           `protobuf:"bytes,3,opt,name=options,proto3" json:"options,omitempty"`
	Env     []string         `protobuf:"bytes,4,rep,name=env,proto3" json:"env,omitempty"`
	Process *Codegen_Process `protobuf:"bytes,5,opt,name=process,proto3" json:"process,omitempty"`
	Wasm    *Codegen_WASM    `protobuf:"bytes,6,opt,name=wasm,proto3" json:"wasm,omitempty"`
	// contains filtered or unexported fields
}

func (*Codegen) Descriptor deprecated

func (*Codegen) Descriptor() ([]byte, []int)

Deprecated: Use Codegen.ProtoReflect.Descriptor instead.

func (*Codegen) GetEnv

func (x *Codegen) GetEnv() []string

func (*Codegen) GetOptions

func (x *Codegen) GetOptions() []byte

func (*Codegen) GetOut

func (x *Codegen) GetOut() string

func (*Codegen) GetPlugin

func (x *Codegen) GetPlugin() string

func (*Codegen) GetProcess

func (x *Codegen) GetProcess() *Codegen_Process

func (*Codegen) GetWasm

func (x *Codegen) GetWasm() *Codegen_WASM

func (*Codegen) ProtoMessage

func (*Codegen) ProtoMessage()

func (*Codegen) ProtoReflect

func (x *Codegen) ProtoReflect() protoreflect.Message

func (*Codegen) Reset

func (x *Codegen) Reset()

func (*Codegen) String

func (x *Codegen) String() string

type CodegenServiceClient

type CodegenServiceClient interface {
	Generate(ctx context.Context, in *GenerateRequest, opts ...grpc.CallOption) (*GenerateResponse, error)
}

CodegenServiceClient is the client API for CodegenService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

type CodegenServiceServer

type CodegenServiceServer interface {
	Generate(context.Context, *GenerateRequest) (*GenerateResponse, error)
	// contains filtered or unexported methods
}

CodegenServiceServer is the server API for CodegenService service. All implementations must embed UnimplementedCodegenServiceServer for forward compatibility

type Codegen_Process

type Codegen_Process struct {
	Cmd string `protobuf:"bytes,1,opt,name=cmd,proto3" json:"cmd,omitempty"`
	// contains filtered or unexported fields
}

func (*Codegen_Process) Descriptor deprecated

func (*Codegen_Process) Descriptor() ([]byte, []int)

Deprecated: Use Codegen_Process.ProtoReflect.Descriptor instead.

func (*Codegen_Process) GetCmd

func (x *Codegen_Process) GetCmd() string

func (*Codegen_Process) ProtoMessage

func (*Codegen_Process) ProtoMessage()

func (*Codegen_Process) ProtoReflect

func (x *Codegen_Process) ProtoReflect() protoreflect.Message

func (*Codegen_Process) Reset

func (x *Codegen_Process) Reset()

func (*Codegen_Process) String

func (x *Codegen_Process) String() string

type Codegen_WASM

type Codegen_WASM struct {
	Url    string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	Sha256 string `protobuf:"bytes,2,opt,name=sha256,proto3" json:"sha256,omitempty"`
	// contains filtered or unexported fields
}

func (*Codegen_WASM) Descriptor deprecated

func (*Codegen_WASM) Descriptor() ([]byte, []int)

Deprecated: Use Codegen_WASM.ProtoReflect.Descriptor instead.

func (*Codegen_WASM) GetSha256

func (x *Codegen_WASM) GetSha256() string

func (*Codegen_WASM) GetUrl

func (x *Codegen_WASM) GetUrl() string

func (*Codegen_WASM) ProtoMessage

func (*Codegen_WASM) ProtoMessage()

func (*Codegen_WASM) ProtoReflect

func (x *Codegen_WASM) ProtoReflect() protoreflect.Message

func (*Codegen_WASM) Reset

func (x *Codegen_WASM) Reset()

func (*Codegen_WASM) String

func (x *Codegen_WASM) String() string

type Column

type Column struct {
	Name         string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	NotNull      bool   `protobuf:"varint,3,opt,name=not_null,json=notNull,proto3" json:"not_null,omitempty"`
	IsArray      bool   `protobuf:"varint,4,opt,name=is_array,json=isArray,proto3" json:"is_array,omitempty"`
	Comment      string `protobuf:"bytes,5,opt,name=comment,proto3" json:"comment,omitempty"`
	Length       int32  `protobuf:"varint,6,opt,name=length,proto3" json:"length,omitempty"`
	IsNamedParam bool   `protobuf:"varint,7,opt,name=is_named_param,json=isNamedParam,proto3" json:"is_named_param,omitempty"`
	IsFuncCall   bool   `protobuf:"varint,8,opt,name=is_func_call,json=isFuncCall,proto3" json:"is_func_call,omitempty"`
	// XXX: Figure out what PostgreSQL calls `foo.id`
	Scope        string      `protobuf:"bytes,9,opt,name=scope,proto3" json:"scope,omitempty"`
	Table        *Identifier `protobuf:"bytes,10,opt,name=table,proto3" json:"table,omitempty"`
	TableAlias   string      `protobuf:"bytes,11,opt,name=table_alias,json=tableAlias,proto3" json:"table_alias,omitempty"`
	Type         *Identifier `protobuf:"bytes,12,opt,name=type,proto3" json:"type,omitempty"`
	IsSqlcSlice  bool        `protobuf:"varint,13,opt,name=is_sqlc_slice,json=isSqlcSlice,proto3" json:"is_sqlc_slice,omitempty"`
	EmbedTable   *Identifier `protobuf:"bytes,14,opt,name=embed_table,json=embedTable,proto3" json:"embed_table,omitempty"`
	OriginalName string      `protobuf:"bytes,15,opt,name=original_name,json=originalName,proto3" json:"original_name,omitempty"`
	Unsigned     bool        `protobuf:"varint,16,opt,name=unsigned,proto3" json:"unsigned,omitempty"`
	ArrayDims    int32       `protobuf:"varint,17,opt,name=array_dims,json=arrayDims,proto3" json:"array_dims,omitempty"`
	// contains filtered or unexported fields
}

func (*Column) Descriptor deprecated

func (*Column) Descriptor() ([]byte, []int)

Deprecated: Use Column.ProtoReflect.Descriptor instead.

func (*Column) GetArrayDims

func (x *Column) GetArrayDims() int32

func (*Column) GetComment

func (x *Column) GetComment() string

func (*Column) GetEmbedTable

func (x *Column) GetEmbedTable() *Identifier

func (*Column) GetIsArray

func (x *Column) GetIsArray() bool

func (*Column) GetIsFuncCall

func (x *Column) GetIsFuncCall() bool

func (*Column) GetIsNamedParam

func (x *Column) GetIsNamedParam() bool

func (*Column) GetIsSqlcSlice

func (x *Column) GetIsSqlcSlice() bool

func (*Column) GetLength

func (x *Column) GetLength() int32

func (*Column) GetName

func (x *Column) GetName() string

func (*Column) GetNotNull

func (x *Column) GetNotNull() bool

func (*Column) GetOriginalName

func (x *Column) GetOriginalName() string

func (*Column) GetScope

func (x *Column) GetScope() string

func (*Column) GetTable

func (x *Column) GetTable() *Identifier

func (*Column) GetTableAlias

func (x *Column) GetTableAlias() string

func (*Column) GetType

func (x *Column) GetType() *Identifier

func (*Column) GetUnsigned

func (x *Column) GetUnsigned() bool

func (*Column) ProtoMessage

func (*Column) ProtoMessage()

func (*Column) ProtoReflect

func (x *Column) ProtoReflect() protoreflect.Message

func (*Column) Reset

func (x *Column) Reset()

func (*Column) String

func (x *Column) String() string

type CompositeType

type CompositeType struct {
	Name    string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Comment string `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment,omitempty"`
	// contains filtered or unexported fields
}

func (*CompositeType) Descriptor deprecated

func (*CompositeType) Descriptor() ([]byte, []int)

Deprecated: Use CompositeType.ProtoReflect.Descriptor instead.

func (*CompositeType) GetComment

func (x *CompositeType) GetComment() string

func (*CompositeType) GetName

func (x *CompositeType) GetName() string

func (*CompositeType) ProtoMessage

func (*CompositeType) ProtoMessage()

func (*CompositeType) ProtoReflect

func (x *CompositeType) ProtoReflect() protoreflect.Message

func (*CompositeType) Reset

func (x *CompositeType) Reset()

func (*CompositeType) String

func (x *CompositeType) String() string

type Enum

type Enum struct {
	Name    string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Vals    []string `protobuf:"bytes,2,rep,name=vals,proto3" json:"vals,omitempty"`
	Comment string   `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"`
	// contains filtered or unexported fields
}

func (*Enum) Descriptor deprecated

func (*Enum) Descriptor() ([]byte, []int)

Deprecated: Use Enum.ProtoReflect.Descriptor instead.

func (*Enum) GetComment

func (x *Enum) GetComment() string

func (*Enum) GetName

func (x *Enum) GetName() string

func (*Enum) GetVals

func (x *Enum) GetVals() []string

func (*Enum) ProtoMessage

func (*Enum) ProtoMessage()

func (*Enum) ProtoReflect

func (x *Enum) ProtoReflect() protoreflect.Message

func (*Enum) Reset

func (x *Enum) Reset()

func (*Enum) String

func (x *Enum) String() string

type File

type File struct {
	Name     string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Contents []byte `protobuf:"bytes,2,opt,name=contents,proto3" json:"contents,omitempty"`
	// contains filtered or unexported fields
}

func (*File) Descriptor deprecated

func (*File) Descriptor() ([]byte, []int)

Deprecated: Use File.ProtoReflect.Descriptor instead.

func (*File) GetContents

func (x *File) GetContents() []byte

func (*File) GetName

func (x *File) GetName() string

func (*File) ProtoMessage

func (*File) ProtoMessage()

func (*File) ProtoReflect

func (x *File) ProtoReflect() protoreflect.Message

func (*File) Reset

func (x *File) Reset()

func (*File) String

func (x *File) String() string

type GenerateRequest

type GenerateRequest struct {
	Settings      *Settings `protobuf:"bytes,1,opt,name=settings,proto3" json:"settings,omitempty"`
	Catalog       *Catalog  `protobuf:"bytes,2,opt,name=catalog,proto3" json:"catalog,omitempty"`
	Queries       []*Query  `protobuf:"bytes,3,rep,name=queries,proto3" json:"queries,omitempty"`
	SqlcVersion   string    `protobuf:"bytes,4,opt,name=sqlc_version,proto3" json:"sqlc_version,omitempty"`
	PluginOptions []byte    `protobuf:"bytes,5,opt,name=plugin_options,proto3" json:"plugin_options,omitempty"`
	GlobalOptions []byte    `protobuf:"bytes,6,opt,name=global_options,proto3" json:"global_options,omitempty"`
	// contains filtered or unexported fields
}

func (*GenerateRequest) Descriptor deprecated

func (*GenerateRequest) Descriptor() ([]byte, []int)

Deprecated: Use GenerateRequest.ProtoReflect.Descriptor instead.

func (*GenerateRequest) GetCatalog

func (x *GenerateRequest) GetCatalog() *Catalog

func (*GenerateRequest) GetGlobalOptions

func (x *GenerateRequest) GetGlobalOptions() []byte

func (*GenerateRequest) GetPluginOptions

func (x *GenerateRequest) GetPluginOptions() []byte

func (*GenerateRequest) GetQueries

func (x *GenerateRequest) GetQueries() []*Query

func (*GenerateRequest) GetSettings

func (x *GenerateRequest) GetSettings() *Settings

func (*GenerateRequest) GetSqlcVersion

func (x *GenerateRequest) GetSqlcVersion() string

func (*GenerateRequest) ProtoMessage

func (*GenerateRequest) ProtoMessage()

func (*GenerateRequest) ProtoReflect

func (x *GenerateRequest) ProtoReflect() protoreflect.Message

func (*GenerateRequest) Reset

func (x *GenerateRequest) Reset()

func (*GenerateRequest) String

func (x *GenerateRequest) String() string

type GenerateResponse

type GenerateResponse struct {
	Files []*File `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty"`
	// contains filtered or unexported fields
}

func (*GenerateResponse) Descriptor deprecated

func (*GenerateResponse) Descriptor() ([]byte, []int)

Deprecated: Use GenerateResponse.ProtoReflect.Descriptor instead.

func (*GenerateResponse) GetFiles

func (x *GenerateResponse) GetFiles() []*File

func (*GenerateResponse) ProtoMessage

func (*GenerateResponse) ProtoMessage()

func (*GenerateResponse) ProtoReflect

func (x *GenerateResponse) ProtoReflect() protoreflect.Message

func (*GenerateResponse) Reset

func (x *GenerateResponse) Reset()

func (*GenerateResponse) String

func (x *GenerateResponse) String() string

type Identifier

type Identifier struct {
	Catalog string `protobuf:"bytes,1,opt,name=catalog,proto3" json:"catalog,omitempty"`
	Schema  string `protobuf:"bytes,2,opt,name=schema,proto3" json:"schema,omitempty"`
	Name    string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	// contains filtered or unexported fields
}

func (*Identifier) Descriptor deprecated

func (*Identifier) Descriptor() ([]byte, []int)

Deprecated: Use Identifier.ProtoReflect.Descriptor instead.

func (*Identifier) GetCatalog

func (x *Identifier) GetCatalog() string

func (*Identifier) GetName

func (x *Identifier) GetName() string

func (*Identifier) GetSchema

func (x *Identifier) GetSchema() string

func (*Identifier) ProtoMessage

func (*Identifier) ProtoMessage()

func (*Identifier) ProtoReflect

func (x *Identifier) ProtoReflect() protoreflect.Message

func (*Identifier) Reset

func (x *Identifier) Reset()

func (*Identifier) String

func (x *Identifier) String() string

type Parameter

type Parameter struct {
	Number int32   `protobuf:"varint,1,opt,name=number,proto3" json:"number,omitempty"`
	Column *Column `protobuf:"bytes,2,opt,name=column,proto3" json:"column,omitempty"`
	// contains filtered or unexported fields
}

func (*Parameter) Descriptor deprecated

func (*Parameter) Descriptor() ([]byte, []int)

Deprecated: Use Parameter.ProtoReflect.Descriptor instead.

func (*Parameter) GetColumn

func (x *Parameter) GetColumn() *Column

func (*Parameter) GetNumber

func (x *Parameter) GetNumber() int32

func (*Parameter) ProtoMessage

func (*Parameter) ProtoMessage()

func (*Parameter) ProtoReflect

func (x *Parameter) ProtoReflect() protoreflect.Message

func (*Parameter) Reset

func (x *Parameter) Reset()

func (*Parameter) String

func (x *Parameter) String() string

type Query

type Query struct {
	Text            string       `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
	Name            string       `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Cmd             string       `protobuf:"bytes,3,opt,name=cmd,proto3" json:"cmd,omitempty"`
	Columns         []*Column    `protobuf:"bytes,4,rep,name=columns,proto3" json:"columns,omitempty"`
	Params          []*Parameter `protobuf:"bytes,5,rep,name=params,json=parameters,proto3" json:"params,omitempty"`
	Comments        []string     `protobuf:"bytes,6,rep,name=comments,proto3" json:"comments,omitempty"`
	Filename        string       `protobuf:"bytes,7,opt,name=filename,proto3" json:"filename,omitempty"`
	InsertIntoTable *Identifier  `protobuf:"bytes,8,opt,name=insert_into_table,proto3" json:"insert_into_table,omitempty"`
	// contains filtered or unexported fields
}

func (*Query) Descriptor deprecated

func (*Query) Descriptor() ([]byte, []int)

Deprecated: Use Query.ProtoReflect.Descriptor instead.

func (*Query) GetCmd

func (x *Query) GetCmd() string

func (*Query) GetColumns

func (x *Query) GetColumns() []*Column

func (*Query) GetComments

func (x *Query) GetComments() []string

func (*Query) GetFilename

func (x *Query) GetFilename() string

func (*Query) GetInsertIntoTable

func (x *Query) GetInsertIntoTable() *Identifier

func (*Query) GetName

func (x *Query) GetName() string

func (*Query) GetParams

func (x *Query) GetParams() []*Parameter

func (*Query) GetText

func (x *Query) GetText() string

func (*Query) ProtoMessage

func (*Query) ProtoMessage()

func (*Query) ProtoReflect

func (x *Query) ProtoReflect() protoreflect.Message

func (*Query) Reset

func (x *Query) Reset()

func (*Query) String

func (x *Query) String() string

type Schema

type Schema struct {
	Comment        string           `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"`
	Name           string           `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Tables         []*Table         `protobuf:"bytes,3,rep,name=tables,proto3" json:"tables,omitempty"`
	Enums          []*Enum          `protobuf:"bytes,4,rep,name=enums,proto3" json:"enums,omitempty"`
	CompositeTypes []*CompositeType `protobuf:"bytes,5,rep,name=composite_types,json=compositeTypes,proto3" json:"composite_types,omitempty"`
	// contains filtered or unexported fields
}

func (*Schema) Descriptor deprecated

func (*Schema) Descriptor() ([]byte, []int)

Deprecated: Use Schema.ProtoReflect.Descriptor instead.

func (*Schema) GetComment

func (x *Schema) GetComment() string

func (*Schema) GetCompositeTypes

func (x *Schema) GetCompositeTypes() []*CompositeType

func (*Schema) GetEnums

func (x *Schema) GetEnums() []*Enum

func (*Schema) GetName

func (x *Schema) GetName() string

func (*Schema) GetTables

func (x *Schema) GetTables() []*Table

func (*Schema) ProtoMessage

func (*Schema) ProtoMessage()

func (*Schema) ProtoReflect

func (x *Schema) ProtoReflect() protoreflect.Message

func (*Schema) Reset

func (x *Schema) Reset()

func (*Schema) String

func (x *Schema) String() string

type Settings

type Settings struct {
	Version string   `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
	Engine  string   `protobuf:"bytes,2,opt,name=engine,proto3" json:"engine,omitempty"`
	Schema  []string `protobuf:"bytes,3,rep,name=schema,proto3" json:"schema,omitempty"`
	Queries []string `protobuf:"bytes,4,rep,name=queries,proto3" json:"queries,omitempty"`
	Codegen *Codegen `protobuf:"bytes,12,opt,name=codegen,proto3" json:"codegen,omitempty"`
	// contains filtered or unexported fields
}

func (*Settings) Descriptor deprecated

func (*Settings) Descriptor() ([]byte, []int)

Deprecated: Use Settings.ProtoReflect.Descriptor instead.

func (*Settings) GetCodegen

func (x *Settings) GetCodegen() *Codegen

func (*Settings) GetEngine

func (x *Settings) GetEngine() string

func (*Settings) GetQueries

func (x *Settings) GetQueries() []string

func (*Settings) GetSchema

func (x *Settings) GetSchema() []string

func (*Settings) GetVersion

func (x *Settings) GetVersion() string

func (*Settings) ProtoMessage

func (*Settings) ProtoMessage()

func (*Settings) ProtoReflect

func (x *Settings) ProtoReflect() protoreflect.Message

func (*Settings) Reset

func (x *Settings) Reset()

func (*Settings) String

func (x *Settings) String() string

type Table

type Table struct {
	Rel     *Identifier `protobuf:"bytes,1,opt,name=rel,proto3" json:"rel,omitempty"`
	Columns []*Column   `protobuf:"bytes,2,rep,name=columns,proto3" json:"columns,omitempty"`
	Comment string      `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"`
	// contains filtered or unexported fields
}

func (*Table) Descriptor deprecated

func (*Table) Descriptor() ([]byte, []int)

Deprecated: Use Table.ProtoReflect.Descriptor instead.

func (*Table) GetColumns

func (x *Table) GetColumns() []*Column

func (*Table) GetComment

func (x *Table) GetComment() string

func (*Table) GetRel

func (x *Table) GetRel() *Identifier

func (*Table) ProtoMessage

func (*Table) ProtoMessage()

func (*Table) ProtoReflect

func (x *Table) ProtoReflect() protoreflect.Message

func (*Table) Reset

func (x *Table) Reset()

func (*Table) String

func (x *Table) String() string

type UnimplementedCodegenServiceServer

type UnimplementedCodegenServiceServer struct {
}

UnimplementedCodegenServiceServer must be embedded to have forward compatible implementations.

func (UnimplementedCodegenServiceServer) Generate

type UnsafeCodegenServiceServer

type UnsafeCodegenServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeCodegenServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to CodegenServiceServer will result in compilation errors.

Jump to

Keyboard shortcuts

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