core

package
v7.0.0 Latest Latest
Warning

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

Go to latest
Published: Jun 28, 2020 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package core 提供基础的核心功能

Index

Constants

View Source
const (
	// 程序的正式名称
	Name = "apidoc"

	// 源码仓库地址
	RepoURL = "https://github.com/caixw/apidoc"

	// 官网
	OfficialURL = "https://apidoc.tools"

	// XMLNamespace 定义 xml 命名空间的 URI
	XMLNamespace = "https://apidoc.tools/v6/XMLSchema"
)

一些公用的常量

View Source
const (
	SchemeFile  = "file"
	SchemeHTTP  = "http"
	SchemeHTTPS = "https"
)

目前 URI 支持的协议

View Source
const Version = "7.0.0"

Version 程序的版本号

遵守 https://semver.org/lang/zh-CN/ 规则。 程序不兼容或是文档格式不兼容时,需要提升主版本号。

Variables

This section is empty.

Functions

func FullVersion

func FullVersion() string

FullVersion 完整的版本号

会包含版本号、构建日期和最后的提交 ID,大致格式如下:

version+buildDate.commitHash

Types

type Block

type Block struct {
	Location Location
	Data     []byte
}

Block 最基本的代码单位

一般从注释提取的一个完整注释作为 Block 实例。

type HTTPError

type HTTPError struct {
	locale.Err
	Code int
}

HTTPError 表示 HTTP 状态码的错误

func NewHTTPError

func NewHTTPError(code int, key message.Reference, v ...interface{}) *HTTPError

NewHTTPError 声明 HTTPError 实例

type HandlerFunc

type HandlerFunc func(*Message)

HandlerFunc 错误处理函数

type Location

type Location struct {
	URI   URI   `json:"uri" apidoc:"-"`
	Range Range `json:"range" apidoc:"-"`
}

Location 用于描述一段内容的定位

兼容 LSP https://microsoft.github.io/language-server-protocol/specifications/specification-current/#location

func (Location) String

func (l Location) String() string

type Message

type Message struct {
	Type    MessageType
	Message interface{}
}

Message 输出消息的具体结构

type MessageHandler

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

MessageHandler 异步的消息处理机制

包含了本地化的信息,输出时,会以指定的本地化内容输出

func NewMessageHandler

func NewMessageHandler(f HandlerFunc) *MessageHandler

NewMessageHandler 声明新的 MessageHandler 实例

func (*MessageHandler) Error

func (h *MessageHandler) Error(err interface{})

Error 发送错误类型的值

func (*MessageHandler) Info

func (h *MessageHandler) Info(err interface{})

Info 发送错误类型的值

func (*MessageHandler) Locale

func (h *MessageHandler) Locale(t MessageType, key message.Reference, val ...interface{})

Locale 发送普通的文本信息

func (*MessageHandler) Message

func (h *MessageHandler) Message(t MessageType, msg interface{})

Message 发送消息

func (*MessageHandler) Stop

func (h *MessageHandler) Stop()

Stop 停止处理错误内容

只有在消息处理完成之后,才会返回。

func (*MessageHandler) Success

func (h *MessageHandler) Success(err interface{})

Success 发送错误类型的值

func (*MessageHandler) Warning

func (h *MessageHandler) Warning(err interface{})

Warning 发送错误类型的值

type MessageType

type MessageType int8

MessageType 表示消息的类型

const (
	Erro MessageType = iota
	Warn
	Info
	Succ
)

消息的分类

func (MessageType) String

func (t MessageType) String() string

type Position

type Position struct {
	Line      int `json:"line" apidoc:"-"`
	Character int `json:"character" apidoc:"-"`
}

Position 用于描述字符在文件中的定位

兼容 LSP https://microsoft.github.io/language-server-protocol/specifications/specification-current/#position

func (Position) Equal

func (p Position) Equal(v Position) bool

Equal 判断两个 Position 是否相等

type Range

type Range struct {
	Start Position `json:"start" apidoc:"-"`
	End   Position `json:"end" apidoc:"-"`
}

Range 用于描述文档中的一段范围

兼容 LSP https://microsoft.github.io/language-server-protocol/specifications/specification-current/#range

func (Range) Contains

func (r Range) Contains(p Position) bool

Contains 是否包含了 p 这个点

func (Range) IsEmpty

func (r Range) IsEmpty() bool

IsEmpty 表示 Range 表示的范围长度为空

type SyntaxError

type SyntaxError struct {
	Err      error
	Location Location
	Field    string
}

SyntaxError 表示语法错误信息

无论是配置文件的错误,还是文档的语法错误,都将返回此错误。 apidoc 的错误基本上都是基于 SyntaxError。

func NewSyntaxError

func NewSyntaxError(loc Location, field string, key message.Reference, val ...interface{}) *SyntaxError

NewSyntaxError 本地化的错误信息

其中的 msg 和 val 会被转换成本地化的内容保存。

func NewSyntaxErrorWithError

func NewSyntaxErrorWithError(loc Location, field string, err error) *SyntaxError

NewSyntaxErrorWithError 声明 SyntaxError 实例,其中的提示信息由 err 返回

func (*SyntaxError) Error

func (err *SyntaxError) Error() string

type URI

type URI string

URI 定义 URI

http://tools.ietf.org/html/rfc3986

  foo://example.com:8042/over/there?name=ferret#nose
  \_/   \______________/\_________/ \_________/ \__/
   |           |            |            |        |
scheme     authority       path        query   fragment
   |   _____________________|__
  / \ /                        \
  urn:example:animal:ferret:nose

如果是本地相对路径,也可以直接使用 `./path/file` 的形式表示, 不需要指定协议。

NOTE: 并非完整的 URI 实现,仅作为了 file:// 和 http:// 支持, 也提供对 windows 路径的支持。

func FileURI

func FileURI(path string) URI

FileURI 根据本地文件路径构建 URI 实例

如果已经存在协议,则不作任何改变返回。

func (URI) Append

func (uri URI) Append(path string) URI

Append 追加 path 至 URI 生成新的 URI

func (URI) Exists

func (uri URI) Exists() (bool, error)

Exists 判断 uri 指向的内容是否存在

如果是非本地文件,通过 http 的状态码是否为 400 以内加以判断。

func (URI) File

func (uri URI) File() (string, error)

File 返回 file:// 协议关联的文件路径

func (URI) Parse

func (uri URI) Parse() (schema, path string)

Parse 分析 uri,获取其各个部分的内容

func (URI) ReadAll

func (uri URI) ReadAll(enc encoding.Encoding) ([]byte, error)

ReadAll 以 enc 编码读取 uri 的内容

目前仅支持 file、http 和 https 协议

func (URI) String

func (uri URI) String() string

func (URI) WriteAll

func (uri URI) WriteAll(data []byte) error

WriteAll 写入内容至 uri

Directories

Path Synopsis
Package messagetest 提供测试生成 message 相关的测试工具
Package messagetest 提供测试生成 message 相关的测试工具

Jump to

Keyboard shortcuts

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