Documentation
¶
Index ¶
- Constants
- Variables
- func RegisterExaminer(language string, examiner DialectExaminer)
- func RegisterFrameworkProcessor(name string, processor DialectFrameworkProcessor)
- type DialectConfiguration
- type DialectContext
- type DialectExaminer
- type DialectFramework
- type DialectFrameworkProcessor
- type DialectFrameworkType
- type DialectLine
- type DialectResult
- type DialectResultCallback
Constants ¶
const EOL = byte('\n')
Variables ¶
var ( Build string Version string )
Functions ¶
func RegisterExaminer ¶
func RegisterExaminer(language string, examiner DialectExaminer)
RegisterExaminer is used to register an implementation of the DialectExaminer interface
func RegisterFrameworkProcessor ¶
func RegisterFrameworkProcessor(name string, processor DialectFrameworkProcessor)
RegisterFrameworkProcessor is used to register an implementation of the DialectFrameworkProcessor interface
Types ¶
type DialectConfiguration ¶
type DialectConfiguration struct {
Callback DialectResultCallback
DetectCopyrights bool
}
DialectConfiguration is a struct which is used for specifying configuration
func CreateConfigurationWithCallback ¶
func CreateConfigurationWithCallback(callback DialectResultCallback) *DialectConfiguration
CreateConfigurationWithCallback returns a default configuration with a callback
func CreateDefaultConfiguration ¶
func CreateDefaultConfiguration() *DialectConfiguration
CreateDefaultConfiguration will return a default configuration
type DialectContext ¶
type DialectContext struct {
Language string
Filename string
Config *DialectConfiguration
Examiner DialectExaminer
LineNumber int
Result *DialectResult
Buffer bytes.Buffer
}
func CreateLineByLineExaminer ¶
func CreateLineByLineExaminer(language string, filename string, config *DialectConfiguration) (*DialectContext, error)
CreateLineByLineExaminer returns an interface which can be called with each line using the ProcessLine function
func (*DialectContext) ProcessLine ¶
func (ctx *DialectContext) ProcessLine(buf []byte, eof bool) (*DialectLine, error)
type DialectExaminer ¶
type DialectExaminer interface {
NewExaminer() DialectExaminer
Examine(language string, filename string, line *DialectLine) error
}
DialectExaminer is the interface that language processors must implement to handle details about a specific language
type DialectFramework ¶
type DialectFramework struct {
Name string `json:"name"`
Type DialectFrameworkType `json:"type"`
}
DialectFramework is details about a framework that the project supports
func DetectFrameworks ¶
func DetectFrameworks(directory string) ([]*DialectFramework, error)
Detect will attempt to detect all the frameworks for a given project source directory
type DialectFrameworkProcessor ¶
type DialectFrameworkProcessor interface {
Detect(directory string) ([]*DialectFramework, error)
}
DialectFramework is the interface that framework processors must implement to handle details about a specific framework
type DialectFrameworkType ¶
type DialectFrameworkType string
const ( DialectFrameworkBuild DialectFrameworkType = "build" DialectFrameworkLanguage DialectFrameworkType = "language" DialectFrameworkContainer DialectFrameworkType = "container" )
type DialectLine ¶
type DialectLine struct {
LineNumber int
IsComment bool
IsCode bool
IsBlank bool
IsTest bool
Contents string
EOF bool
Buffer string
Config *DialectConfiguration
}
DialectLine is internally used by the dialect framework to communicate results per line by a DialectExaminer implementation
type DialectResult ¶
type DialectResult struct {
Blanks int
Comments int
Loc int
Sloc int
IsTest bool
Copyrights []*copyright.CopyrightResult
}
DialectResult is returned from Examine to describe the code
func Examine ¶
func Examine(language string, filename string, reader io.Reader, config *DialectConfiguration) (*DialectResult, error)
Examine is used to detect information about the source code
func (*DialectResult) String ¶
func (r *DialectResult) String() string
type DialectResultCallback ¶
type DialectResultCallback func(language string, line *DialectLine) error
DialectResultCallback is a callback function for receiving per line results as the code is being examined