From e8d8da1443d5f7d8e25308cc6528dd1b9b2675a9 Mon Sep 17 00:00:00 2001 From: Zachary Yedidia Date: Sat, 28 May 2016 11:32:09 -0400 Subject: [PATCH] Refactor and clean up This commit puts in place the ability for multiple views (splits). This commit also removes the editor bindings so that all bindings can be rebound by the user. I also added some more comments This fixes #109 --- cmd/micro/bindings.go | 70 +++++++++-- cmd/micro/command.go | 64 ++++++---- cmd/micro/micro.go | 87 +++++--------- cmd/micro/runtime.go | 192 +++++++++++++++--------------- cmd/micro/statusline.go | 2 +- cmd/micro/view.go | 9 ++ runtime/help/help.md | 113 +++++++++--------- runtime/plugins/go/go.lua | 8 +- runtime/plugins/linter/linter.lua | 14 +-- 9 files changed, 311 insertions(+), 248 deletions(-) diff --git a/cmd/micro/bindings.go b/cmd/micro/bindings.go index fdd8fc19..be2f97da 100644 --- a/cmd/micro/bindings.go +++ b/cmd/micro/bindings.go @@ -71,9 +71,13 @@ func InitBindings() { "HalfPageDown": (*View).HalfPageDown, "StartOfLine": (*View).StartOfLine, "EndOfLine": (*View).EndOfLine, + "ToggleHelp": (*View).ToggleHelp, "ToggleRuler": (*View).ToggleRuler, "JumpLine": (*View).JumpLine, "ClearStatus": (*View).ClearStatus, + "ShellMode": (*View).ShellMode, + "CommandMode": (*View).CommandMode, + "Quit": (*View).Quit, } keys := map[string]Key{ @@ -303,13 +307,14 @@ func DefaultBindings() map[string]string { "End": "End", "PgUp": "PageUp", "PgDn": "PageDown", - // Find alternative key - // "CtrlU": "HalfPageUp", - // "CtrlD": "HalfPageDown", - "CtrlR": "ToggleRuler", - "CtrlL": "JumpLine", - "Delete": "Delete", - "Esc": "ClearStatus", + "CtrlG": "ToggleHelp", + "CtrlR": "ToggleRuler", + "CtrlL": "JumpLine", + "Delete": "Delete", + "Esc": "ClearStatus", + "CtrlB": "ShellMode", + "CtrlQ": "Quit", + "CtrlE": "CommandMode", // Emacs-style keybindings "Alt-f": "WordRight", @@ -625,6 +630,10 @@ func (v *View) InsertTab() bool { // Save the buffer to disk func (v *View) Save() bool { + if v.helpOpen { + // We can't save the help text + return false + } // If this is an empty buffer, ask for a filename if v.Buf.Path == "" { filename, canceled := messenger.Prompt("Filename: ") @@ -894,6 +903,53 @@ func (v *View) ClearStatus() bool { return false } +// ToggleHelp toggles the help screen +func (v *View) ToggleHelp() bool { + if !v.helpOpen { + v.lastBuffer = v.Buf + helpBuffer := NewBuffer(helpTxt, "help.md") + helpBuffer.Name = "Help" + v.helpOpen = true + v.OpenBuffer(helpBuffer) + } else { + v.OpenBuffer(v.lastBuffer) + v.helpOpen = false + } + return true +} + +// ShellMode opens a terminal to run a shell command +func (v *View) ShellMode() bool { + input, canceled := messenger.Prompt("$ ") + if !canceled { + // The true here is for openTerm to make the command interactive + HandleShellCommand(input, true) + } + return false +} + +// CommandMode lets the user enter a command +func (v *View) CommandMode() bool { + input, canceled := messenger.Prompt("> ") + if !canceled { + HandleCommand(input) + } + return false +} + +// Quit quits the editor +// This behavior needs to be changed and should really only quit the editor if this +// is the last view +// However, since micro only supports one view for now, it doesn't really matter +func (v *View) Quit() bool { + // Make sure not to quit if there are unsaved changes + if views[mainView].CanClose("Quit anyway? (yes, no, save) ") { + screen.Fini() + os.Exit(0) + } + return false +} + // None is no action func None() bool { return false diff --git a/cmd/micro/command.go b/cmd/micro/command.go index dac6ed58..6fae23bf 100644 --- a/cmd/micro/command.go +++ b/cmd/micro/command.go @@ -24,10 +24,13 @@ func RunShellCommand(input string) (string, error) { return outstring, err } -// HandleShellCommand runs the shell command and outputs to DisplayBlock -func HandleShellCommand(input string, view *View, openTerm bool) { +// HandleShellCommand runs the shell command +// The openTerm argument specifies whether a terminal should be opened (for viewing output +// or interacting with stdin) +func HandleShellCommand(input string, openTerm bool) { inputCmd := strings.Split(input, " ")[0] if !openTerm { + // Simply run the command in the background and notify the user when it's done messenger.Message("Running...") go func() { output, err := RunShellCommand(input) @@ -42,19 +45,24 @@ func HandleShellCommand(input string, view *View, openTerm bool) { } else { messenger.Message(output) } - Redraw(view) + // We have to make sure to redraw + RedrawAll() }() } else { + // Shut down the screen because we're going to interact directly with the shell screen.Fini() screen = nil args := strings.Split(input, " ")[1:] + // Set up everything for the command cmd := exec.Command(inputCmd, args...) cmd.Stdin = os.Stdin cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr + // This is a trap for Ctrl-C so that it doesn't kill micro + // Instead we trap Ctrl-C to kill the program we're running c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt) go func() { @@ -63,51 +71,52 @@ func HandleShellCommand(input string, view *View, openTerm bool) { } }() + // Start the command cmd.Start() cmd.Wait() + // This is just so we don't return right away and let the user press enter to return TermMessage("") + // Start the screen back up InitScreen() } } // HandleCommand handles input from the user -func HandleCommand(input string, view *View) { +func HandleCommand(input string) { inputCmd := strings.Split(input, " ")[0] args := strings.Split(input, " ")[1:] - commands := []string{"set", "quit", "save", "replace", "run"} - - i := 0 - cmd := inputCmd - - for _, c := range commands { - if strings.HasPrefix(c, inputCmd) { - i++ - cmd = c - } - } - if i == 1 { - inputCmd = cmd - } - switch inputCmd { case "set": - SetOption(view, args) + // Set an option and we have to set it for every view + for _, view := range views { + SetOption(view, args) + } case "run": - HandleShellCommand(strings.Join(args, " "), view, false) + // Run a shell command in the background (openTerm is false) + HandleShellCommand(strings.Join(args, " "), false) case "quit": - if view.CanClose("Quit anyway? (yes, no, save) ") { + // This is a bit weird because micro only has one view for now so there is no way to close + // a single view + // Currently if multiple views were open, it would close all of them, and not check the non-mainviews + // for unsaved changes. This, and the behavior of Ctrl-Q need to be changed when splits are implemented + if views[mainView].CanClose("Quit anyway? (yes, no, save) ") { screen.Fini() os.Exit(0) } case "save": - view.Save() + // Save the main view + views[mainView].Save() case "replace": + // This is a regex to parse the replace expression + // We allow no quotes if there are no spaces, but if you want to search + // for or replace an expression with spaces, you can add double quotes r := regexp.MustCompile(`"[^"\\]*(?:\\.[^"\\]*)*"|[^\s]*`) replaceCmd := r.FindAllString(strings.Join(args, " "), -1) if len(replaceCmd) < 2 { + // We need to find both a search and replace expression messenger.Error("Invalid replace statement: " + strings.Join(args, " ")) return } @@ -121,6 +130,7 @@ func HandleCommand(input string, view *View) { search := string(replaceCmd[0]) replace := string(replaceCmd[1]) + // If the search and replace expressions have quotes, we need to remove those if strings.HasPrefix(search, `"`) && strings.HasSuffix(search, `"`) { search = search[1 : len(search)-1] } @@ -128,17 +138,19 @@ func HandleCommand(input string, view *View) { replace = replace[1 : len(replace)-1] } + // We replace all escaped double quotes to real double quotes search = strings.Replace(search, `\"`, `"`, -1) replace = strings.Replace(replace, `\"`, `"`, -1) - // messenger.Error(search + " -> " + replace) - regex, err := regexp.Compile(search) if err != nil { + // There was an error with the user's regex messenger.Error(err.Error()) return } + view := views[mainView] + found := false for { match := regex.FindStringIndex(view.Buf.String()) @@ -150,7 +162,7 @@ func HandleCommand(input string, view *View) { // The 'check' flag was used Search(search, view, true) view.Relocate() - Redraw(view) + RedrawAll() choice, canceled := messenger.YesNoPrompt("Perform replacement? (y,n)") if canceled { if view.Cursor.HasSelection() { diff --git a/cmd/micro/micro.go b/cmd/micro/micro.go index 718d220d..ab84834c 100644 --- a/cmd/micro/micro.go +++ b/cmd/micro/micro.go @@ -30,7 +30,8 @@ var ( // Object to send messages and prompts to the user messenger *Messenger - // The default style + // The default highlighting style + // This simply defines the default foreground and background colors defStyle tcell.Style // Where the user's configuration is @@ -38,20 +39,25 @@ var ( // If $XDG_CONFIG_HOME is not set, it is ~/.config/micro configDir string - // Version is the version number. + // Version is the version number or commit hash // This should be set by the linker Version = "Unknown" - // Is the help screen open - helpOpen = false - // L is the lua state + // This is the VM that runs the plugins L *lua.LState + + // The list of views + views []*View + // This is the currently open view + // It's just an index to the view in the views array + mainView int ) // LoadInput loads the file input for the editor func LoadInput() (string, []byte, error) { // There are a number of ways micro should start given its input + // 1. If it is given a file in os.Args, it should open that // 2. If there is no input file and the input is not a terminal, that means @@ -85,15 +91,15 @@ func LoadInput() (string, []byte, error) { return filename, input, err } -// InitConfigDir finds the configuration directory for micro according to the -// XDG spec. +// InitConfigDir finds the configuration directory for micro according to the XDG spec. // If no directory is found, it creates one. func InitConfigDir() { xdgHome := os.Getenv("XDG_CONFIG_HOME") if xdgHome == "" { + // The user has not set $XDG_CONFIG_HOME so we should act like it was set to ~/.config home, err := homedir.Dir() if err != nil { - TermMessage("Error finding your home directory\nCan't load syntax files") + TermMessage("Error finding your home directory\nCan't load config files") return } xdgHome = home + "/.config" @@ -101,6 +107,7 @@ func InitConfigDir() { configDir = xdgHome + "/micro" if _, err := os.Stat(xdgHome); os.IsNotExist(err) { + // If the xdgHome doesn't exist we should create it err = os.Mkdir(xdgHome, os.ModePerm) if err != nil { TermMessage("Error creating XDG_CONFIG_HOME directory: " + err.Error()) @@ -108,6 +115,7 @@ func InitConfigDir() { } if _, err := os.Stat(configDir); os.IsNotExist(err) { + // If the micro specific config directory doesn't exist we should create that too err = os.Mkdir(configDir, os.ModePerm) if err != nil { TermMessage("Error creating configuration directory: " + err.Error()) @@ -150,6 +158,7 @@ func InitScreen() { Background(tcell.ColorDefault) // There may be another default style defined in the colorscheme + // In that case we should use that one if style, ok := colorscheme["default"]; ok { defStyle = style } @@ -158,10 +167,12 @@ func InitScreen() { screen.EnableMouse() } -// Redraw redraws the screen and the given view -func Redraw(view *View) { +// RedrawAll redraws everything -- all the views and the messenger +func RedrawAll() { screen.Clear() - view.Display() + for _, v := range views { + v.Display() + } messenger.Display() screen.Show() } @@ -184,6 +195,7 @@ func main() { L = lua.NewState() defer L.Close() + // Some encoding stuff in case the user isn't using UTF-8 encoding.Register() tcell.SetEncodingFallback(tcell.EncodingFallbackASCII) @@ -203,6 +215,7 @@ func main() { // This is just so if we have an error, we can exit cleanly and not completely // mess up the terminal being worked in + // In other words we need to shut down tcell before the program crashes defer func() { if err := recover(); err != nil { screen.Fini() @@ -214,10 +227,12 @@ func main() { }() messenger = new(Messenger) - view := NewView(buf) + views = make([]*View, 1) + views[0] = NewView(buf) L.SetGlobal("OS", luar.New(L, runtime.GOOS)) - L.SetGlobal("view", luar.New(L, view)) + L.SetGlobal("views", luar.New(L, views)) + L.SetGlobal("mainView", luar.New(L, mainView)) L.SetGlobal("messenger", luar.New(L, messenger)) L.SetGlobal("GetOption", luar.New(L, GetOption)) L.SetGlobal("AddOption", luar.New(L, AddOption)) @@ -226,54 +241,18 @@ func main() { for { // Display everything - Redraw(view) + RedrawAll() // Wait for the user's action event := screen.PollEvent() if searching { - HandleSearchEvent(event, view) + // Since searching is done in real time, we need to redraw every time + // there is a new event in the search bar + HandleSearchEvent(event, views[mainView]) } else { - // Check if we should quit - switch e := event.(type) { - case *tcell.EventKey: - switch e.Key() { - case tcell.KeyCtrlQ: - // Make sure not to quit if there are unsaved changes - if helpOpen { - view.OpenBuffer(buf) - helpOpen = false - } else { - if view.CanClose("Quit anyway? (yes, no, save) ") { - screen.Fini() - os.Exit(0) - } - } - case tcell.KeyCtrlE: - input, canceled := messenger.Prompt("> ") - if !canceled { - HandleCommand(input, view) - } - case tcell.KeyCtrlB: - input, canceled := messenger.Prompt("$ ") - if !canceled { - HandleShellCommand(input, view, true) - } - case tcell.KeyCtrlG: - if !helpOpen { - helpBuffer := NewBuffer(helpTxt, "help.md") - helpBuffer.Name = "Help" - helpOpen = true - view.OpenBuffer(helpBuffer) - } else { - view.OpenBuffer(buf) - helpOpen = false - } - } - } - // Send it to the view - view.HandleEvent(event) + views[mainView].HandleEvent(event) } } } diff --git a/cmd/micro/runtime.go b/cmd/micro/runtime.go index 7aebec3b..f08836ea 100644 --- a/cmd/micro/runtime.go +++ b/cmd/micro/runtime.go @@ -175,7 +175,7 @@ func runtimeReadmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/README.md", size: 305, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/README.md", size: 305, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -195,7 +195,7 @@ func runtimeColorschemesDefaultMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/colorschemes/default.micro", size: 409, mode: os.FileMode(420), modTime: time.Unix(1463528404, 0)} + info := bindataFileInfo{name: "runtime/colorschemes/default.micro", size: 409, mode: os.FileMode(420), modTime: time.Unix(1464447123, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -215,7 +215,7 @@ func runtimeColorschemesSolarizedTcMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/colorschemes/solarized-tc.micro", size: 626, mode: os.FileMode(420), modTime: time.Unix(1463528404, 0)} + info := bindataFileInfo{name: "runtime/colorschemes/solarized-tc.micro", size: 626, mode: os.FileMode(420), modTime: time.Unix(1464447123, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -235,12 +235,12 @@ func runtimeColorschemesSolarizedMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/colorschemes/solarized.micro", size: 499, mode: os.FileMode(420), modTime: time.Unix(1463528404, 0)} + info := bindataFileInfo{name: "runtime/colorschemes/solarized.micro", size: 499, mode: os.FileMode(420), modTime: time.Unix(1464447123, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _runtimeHelpHelpMd = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xa4\x59\x4b\x73\x1b\xb9\x11\x3e\x7b\x7e\x05\x8a\x76\xd5\xda\x1b\x8a\xaa\x6c\xe5\xc4\x9b\x56\x92\x1f\x59\xdb\x52\x64\x39\x59\xef\xc5\x03\xce\x80\x24\x56\x33\x83\x31\x80\x91\x44\xe7\xf1\xdb\xf3\x75\x03\x98\x07\x49\x7b\x53\x15\x5d\xcc\xe9\x6e\xf4\x0b\xfd\x84\x9f\x8a\x77\xba\xb0\x46\x6c\x55\xd5\x0a\xaf\x1e\x7d\x96\x05\x80\x76\x42\x02\x60\x6b\xdd\xc8\xea\x64\x25\x9d\x2a\x19\x2f\x54\xa9\xbd\xb1\xc2\x6f\xa5\x17\x52\xd7\x4e\x78\x23\x56\x4a\x28\xe9\x76\xf4\xb3\x73\x4a\xc8\xa6\x14\xba\xf1\x9d\xf6\xfa\x5e\xcd\x45\xf6\xb0\xd5\x15\xa0\x95\x33\xc2\xcb\x3b\xdd\x6c\x84\x2c\xef\x65\xe3\xe5\x46\x09\xb3\x06\x2b\x25\xd6\x5d\x55\x89\x42\xb6\x72\xa5\x2b\x1c\x53\x8e\x10\xb5\x29\x95\x6d\x7a\x2d\xdc\x22\xcb\x9e\x3e\x7d\x2a\x3e\x3a\x1c\xcc\xb2\xab\xa6\x50\x62\x67\x3a\xb1\x95\xf7\x4a\xac\x3a\x5d\x79\x66\x15\x14\x9c\x0b\xa7\xeb\xb6\xda\x09\xe7\xa5\xf5\x42\x7b\xb1\xda\x09\xdb\x35\x0d\x89\xcf\xf2\x9a\x8d\x6c\xa5\xdf\x9e\x7a\x73\xba\x86\x7e\x0b\xff\xe8\x73\x01\xcb\xe2\xb9\x40\x92\x93\x4d\xa6\x55\x0d\x8c\x12\xaa\x6e\xfd\x0e\x92\xd6\x6b\x65\x17\xc9\x51\x6c\x96\xeb\xda\xd6\x58\xef\x44\x61\x95\xf4\x24\x22\x50\x39\xb1\xb6\xa6\x86\x0e\xa5\x6e\x96\x59\x96\xe7\x79\xf6\x4c\xe8\x75\x61\x9a\xb5\xde\x88\x7f\x09\x96\xc1\xe0\xec\x13\x2c\x29\x20\xa4\x36\xb0\x86\xec\x28\x3a\xeb\xa0\x8e\xb4\xa6\x83\x3f\x1f\xb4\xdf\x32\x58\x5a\x6b\x1e\xc4\x9d\xda\x39\xf6\x73\x6d\xe0\xf1\xe8\x98\x5f\xd4\x6e\xa5\x1b\x88\xda\xb8\x2c\xbb\xdd\x2a\xba\x0a\x1b\x98\x95\x6a\x2d\x3b\x38\xe8\x6e\x20\x99\x43\x75\x03\x4d\x13\x67\x0d\x59\x85\xd7\xa6\x21\x3f\x13\xbf\xa7\xe2\x32\xdc\xf5\xc0\xf4\x47\x71\xee\x6d\x75\xf2\x65\x29\x84\xf8\x1b\xee\x37\x01\x14\x01\x2e\x1f\x55\xd1\x79\xc8\x14\x85\xa9\x6b\x28\x97\xb0\x1b\xc2\xde\x9a\xcd\x06\x51\x30\x04\x5a\x44\xae\x08\x79\xd3\xc1\xc1\xc2\x01\x59\xf5\x87\x83\x0a\x3f\xb3\x1f\x0f\x55\x70\x74\xec\x03\x6e\x3e\x01\x0c\x01\xae\xe8\xa6\xe8\x36\x13\xf4\x2b\x41\x3f\x36\xa5\x49\x80\x1d\x8b\x53\x03\x60\x4d\x80\x97\x7a\xd0\xb6\x49\x00\xd1\x8c\xd4\x6c\x7b\x68\x6b\xd5\xbd\x86\xd7\x13\x46\xb2\x26\xaa\x52\x05\x12\xa2\xaa\x12\xb8\x20\xf0\xb9\x69\x77\x09\xf0\xc8\x80\xae\xe7\x78\x17\xbf\x45\xa5\x9b\x5e\xdf\x7b\x02\x5e\x4b\xe7\x7b\x48\x47\x90\xd7\xb2\x5a\x23\x5a\x91\x2f\x5d\x9b\x10\xe5\x14\x51\x9a\x87\x06\xa8\x6b\xfc\xfe\xd8\x06\x2e\x89\x9c\x7e\x5d\x00\xbd\x0c\xb0\x48\xf9\xda\xd4\x7c\x6d\x42\xbc\x32\x21\x89\x37\x3a\xa4\x07\x52\x2f\xea\x74\xd9\x94\x81\x24\xd2\x28\xd8\x3f\x60\x59\x0d\x3b\xba\x5c\x82\x8b\xa6\xab\x57\x88\xfc\x21\xa2\xa9\x24\x70\xe4\x86\xf8\x73\xe2\x4f\x21\x88\xb9\x74\x70\xb8\x3f\x18\x5b\x52\x7e\xd2\xbf\x8b\x8c\xd8\x8a\x4a\xad\x3d\x07\xb8\xd5\x9b\xad\x3f\xc8\x0a\x9c\xa4\xaf\x90\xdc\x44\x16\x35\x23\x20\x69\x31\x27\x60\x56\x10\xa7\xae\x65\x02\xb2\xfa\x90\xcd\xb7\x78\xf4\x49\x9e\x8c\xd8\x9a\xaa\x44\x80\x6a\x68\xc5\x09\x83\x9b\x8e\xb4\xb0\x8e\xd8\xd6\xaa\xf1\x29\x81\x48\x3d\x17\x22\x22\xd4\x3e\x10\xc0\xb1\x0b\xce\xca\xc8\xbb\x0f\x69\x51\xcb\x1d\x55\x50\xab\x56\x9c\xe9\x9d\xa3\x3b\x20\x25\xf2\xff\x9c\x2e\x42\xa9\x38\xe5\x42\x71\x9a\x8e\x2c\x7e\x77\xa6\xc9\x45\xc6\x75\x4b\x5c\xca\x62\x4b\x8e\xa5\x9a\x1d\x58\x40\x3c\x54\x0e\xca\x40\xe8\x4b\x58\xaa\x1e\x25\xca\x1a\xfc\x42\x37\x4d\x61\x9c\x87\x74\xe0\x02\x87\x33\x86\x3d\x10\x80\x5f\x19\x68\x91\x24\x73\x2e\xb0\x85\xe9\x60\x7c\xdb\x85\xfa\x9a\xad\x4d\x55\x99\x07\x52\x52\x37\x41\xcf\x3d\xbd\x58\x2d\xae\x76\xf4\x9d\xfd\x33\xa3\x00\x9a\x11\xeb\x4f\xb3\xa5\x98\x51\x3a\xce\xe6\x03\xf0\x37\x02\x52\x4a\xce\xb2\x7f\x87\x5a\xf8\x5a\xd9\x83\xd2\xe5\x96\x63\x8e\x4f\x9e\xcc\x3e\xb6\xb3\x18\x9b\xf1\x6f\x76\xce\x97\x0a\xf8\x9c\xf0\x14\xf1\x13\x8a\x88\x67\x38\x53\xdc\x50\x68\x8d\x49\x22\x45\x80\x33\xc9\x5b\x84\xe1\x31\x26\x0c\x67\x8a\x0f\x14\x13\x63\x5d\x66\xa1\x16\x24\x35\x18\x3f\xd6\x25\xe2\x07\x35\x98\x62\x2c\x28\x52\xec\xc9\x18\x6b\x1b\x29\x46\x8a\x9e\x55\x7e\xaa\xeb\xec\x1f\x48\xa6\x81\x05\xf0\x53\x73\x19\x3f\x65\x30\x15\x13\x65\x7c\x83\xac\x17\x36\x22\x1b\xa4\xd1\xb5\x4e\xd4\x99\x7d\xa0\x2c\xbb\x5a\xbf\x45\x6e\x0e\x24\x13\x8d\x66\x28\x36\xfb\x04\x13\x51\x51\xd2\xad\x39\xca\x6b\xa2\x7c\x4f\x7a\x84\xe7\x24\x6e\xe2\x75\x32\xc7\x81\x64\x12\x3a\x91\x04\x9c\xf6\x84\x25\x46\x53\xbd\xf6\x88\x12\xab\xb1\x46\x81\xe4\xb2\xc1\x60\x33\x89\xbe\x37\x8d\x53\xd6\x07\x78\xb8\xf7\x56\x16\xea\x08\x49\x80\x33\xc9\xcf\xb2\xb8\x73\x63\xb2\x11\x64\x4a\xf0\x53\x8a\x9d\x3d\x82\x5b\xb9\x9a\x26\x52\x14\x42\xf0\xde\x96\xab\x89\x16\xd4\x66\x5f\x22\xc9\x47\xb6\x4e\xf0\xd4\x97\x07\xdc\xcb\x09\x8e\x7a\xe8\x80\x7b\x7f\x80\x7b\x8f\xa6\x3b\xe0\xaf\x0f\xf0\xd7\xb1\xfd\x0e\x34\xbf\x4d\x68\x62\x75\x89\xb8\x4f\x13\x1c\x17\x99\x1e\x77\x3e\x4d\x7d\xb4\xea\x01\xf7\xeb\x5e\x59\x18\xa9\xf4\xcb\x3e\x6a\x1a\x5e\x7f\x9f\xa0\xb9\x95\x0f\xc8\xb3\xa9\x9b\x38\x24\xce\xaa\x2a\x10\x50\x43\x9e\xd6\x9a\x51\x40\x51\xd8\x4c\x6f\xa9\x0f\xa4\xeb\xcd\x5e\x29\x9c\x85\x21\x20\x61\x2f\x9a\x43\xec\x50\x7d\x38\x25\x26\x6a\xd1\x4c\x31\xe6\xc0\x19\x71\x94\x62\xca\xe5\x66\x42\x13\x46\x82\x9b\xae\x4a\xc1\x7c\x01\x6b\xfd\xd8\xc0\x04\x41\xd5\x0f\x65\x9f\x87\xd8\x6b\xe3\x9c\x5e\xa1\x67\xc6\x39\x70\x34\x48\xa8\x34\x60\x36\x69\x0b\x89\x34\x34\x3b\x60\x2c\x73\xdc\x39\x43\x0f\x53\x68\x43\xdc\xa7\x14\x63\xb9\xe7\x07\xe2\xc5\xb4\xbd\xb4\xfb\xf2\xc2\x6a\xb3\x1b\x86\x97\x05\x0d\x9d\xf9\x17\x8c\xbb\xf9\x92\xa7\x5e\x17\xe6\xf6\x05\x81\x1d\x42\x1d\x60\x8a\x78\x97\x26\x0b\x4b\xa3\x40\x3f\x41\x80\xc8\xaa\xb6\x42\xbe\x89\x99\x53\xd2\x16\xdb\x99\x98\xdd\xcb\xaa\x53\x33\xb1\xae\xe4\xc6\xe1\xf8\xed\x16\xbd\xfb\x41\x63\xa6\x48\xa4\x79\x20\xcd\xc3\xb4\x91\x33\x7d\xbe\x10\xd4\x35\x69\x86\xc8\xc3\x49\xb6\xc2\xb4\xd4\xe7\x65\xb5\x20\xe4\x19\x35\x69\x30\x6b\x0d\x36\xb0\x39\x69\x04\x0a\x7c\x9b\x06\x3b\x8d\xc1\x78\x46\x07\x97\x22\x2f\xf2\x39\xcd\x26\x98\x1c\x54\x23\x61\xbe\x03\x68\xab\x8a\xbb\x9c\xb7\x2e\x96\x13\xd0\xd2\xdd\x39\xac\x2c\xe4\x90\x1f\x4a\xcc\x56\x77\x8a\x86\x83\x56\xd9\xb5\xb1\x35\x5b\x1c\x55\xe6\x01\x48\xd1\x2c\xe2\x75\x8d\xfd\x0c\x1c\xde\x1b\xaf\x82\x3b\x7b\x73\xea\xce\x79\x9a\x76\xa4\x80\x49\x1a\xe3\x9d\xda\xa8\xc7\x85\x10\x6f\xd6\xac\x5d\x1c\xbf\xa4\xdd\x74\xc4\xcf\x11\x97\xd2\x40\xbb\xc6\xf8\xb0\xe8\xc9\x06\x3b\x1d\x55\x2f\x47\xe3\x87\xf6\x61\x44\xa1\x19\xca\xd4\x3a\x4c\x28\x5f\x3a\xc8\x75\xc1\xf5\x4e\xf9\xe8\x20\x11\x7c\xb8\xc4\x64\xe6\xc3\x55\x45\x38\xcc\x61\xd4\x42\x5c\x57\x58\x63\x31\x11\xaa\x10\x1a\x34\xff\xe3\x83\xc7\x28\x44\x93\x25\x65\x24\x5c\x00\x0b\xa0\x67\x38\xed\xfa\x48\x01\xdb\x78\xdb\x58\x66\xdc\xf6\x24\xc6\x13\x04\x02\x10\x04\x6e\xb0\x0f\x37\xd3\x35\x27\xcd\x50\x2b\x14\xe5\x0d\xaf\x7a\x0b\xbe\x60\x92\x15\x49\x7e\xc0\xed\x75\x9e\xc6\x2f\x8e\x10\x38\xaf\xd4\x0e\x2e\xdf\x29\x3e\x4d\x6e\xe3\xc1\xfb\x61\xab\xc8\x21\x18\xbf\x1a\x0d\x19\x2e\xad\xbb\x71\x3b\xbc\x0a\xfa\xa6\xbd\xd5\x21\x7f\x40\x33\xcc\xb1\x14\xea\x94\x51\x34\x6f\x76\x56\xb2\xd1\xec\x61\xb7\x07\x2c\xb5\x85\x4f\x8c\xdd\xf5\x3b\x30\x4e\x06\x03\xf3\x67\xbf\x5e\xbc\xfa\x7c\x7e\xf5\xfe\xe5\x9b\x57\x9f\x5f\x5f\xbd\xbb\x3c\x8d\x5b\xb4\x8c\xc9\xf1\x0d\x46\xe2\xcc\x51\x48\x65\x44\x03\x0e\xb8\x60\x55\xcc\x29\xea\x0e\x18\xe6\x14\xcc\x14\x0c\x70\xf7\xfc\x60\x42\x66\x6c\x47\x6f\x15\x10\x98\x0d\x12\x27\x3a\x4f\xd2\x3f\xdd\xe2\x24\xe9\xc1\x7b\xc9\x57\x59\x98\xca\x58\x87\xc4\xa8\x29\x70\x2a\x23\xcb\x64\x47\x0f\x0f\x8e\xe4\x9b\xa0\x3b\x7b\xf6\x3c\x48\xbc\xd0\xf6\xc5\xe9\x88\xcc\x9d\xe6\x41\x54\xbe\x08\x4b\x7f\xf6\x24\xed\xe4\x1c\x7c\x48\xc9\xf8\x9d\x67\x4f\x86\xbc\x19\xef\xee\x63\x6e\xe2\x79\x84\xce\x85\x33\x95\xb4\xfa\xab\x2a\x79\xe7\x19\x3e\x4f\x7c\xf1\x82\x87\x6c\x32\x95\x3c\x56\x99\x42\xfa\xa0\x69\xaf\xe3\x1c\xe1\x54\xc8\xb8\xa1\xed\x98\x54\x61\x7d\x2b\x4b\xd5\x47\x66\x78\x2a\xc1\x88\x2f\xed\x8e\xb3\x9a\xe3\x73\xec\x01\x72\xd9\x4a\xc5\x8d\x07\x07\xf9\xcd\x83\x02\x8b\x5f\x76\x74\x15\x52\xd5\xc7\xa8\x16\xfb\x5b\xcd\xc4\x4b\xe3\xa0\x08\xc1\x85\x2c\x00\x03\xd4\xf0\xe4\x87\xf8\x60\x61\x95\x62\x76\xe3\xe3\xcb\xa0\xe0\x8f\x89\x76\x19\x8a\xa1\x76\xdf\x72\xe4\x22\xd2\xf7\x5e\x9b\x9e\xe8\xc1\x13\x7b\x9f\x73\x84\x45\x93\x5c\x01\x45\x1a\xb7\x35\xfe\x45\x28\xcf\xf8\xa3\x86\x05\x08\x6d\x4d\x5c\xb3\x8e\xb0\xc2\xd2\x8e\xe6\x87\x6b\x06\x1b\x84\x9d\xed\x5f\xb9\xd2\x23\x9a\xf6\x07\xba\xe1\x46\xff\x17\xf5\xd6\xb4\xd8\xda\x2e\xde\xd1\x5c\xfc\x4e\x25\x37\x6a\x56\x4b\xd4\x6f\xd7\x59\xb5\x27\xb4\x7f\xc0\x1a\x0e\xe2\x4a\xc1\x49\xc5\x7d\x54\x87\x15\xb9\x0f\xca\xc8\xef\xdd\x9b\xf3\x9b\xab\xcf\xb7\x37\x1f\x2f\xcf\xaf\xde\x5e\xdd\xa0\x99\xdc\x6b\x6b\x1a\xee\x05\xf7\xd0\x8d\x5a\x0b\x69\x4b\x65\x18\x86\xfd\x39\x31\xe5\xa5\x9b\xf8\xc6\x4e\xca\xd9\xe6\xe5\xca\xc1\x9a\x71\x89\x06\x48\x10\x8c\x0e\xa7\x04\x3a\x92\x3a\x7f\xc9\x99\x01\xc6\x43\x08\x2e\xb6\xd2\x8e\x79\x04\x68\x28\x39\x84\xc3\x5e\x8c\x52\x73\xc8\x44\x44\x26\x9b\x06\x1a\x16\x68\x04\x60\x92\xfa\x1c\x7d\x9e\x68\xcc\xc5\x8d\xe3\x57\x4d\x11\xfa\x99\x72\x47\xf8\x98\xf5\x3a\x70\x72\x3b\x88\x7d\x04\x17\xdf\x59\x94\x98\xf0\x89\x7a\x4d\xaf\x8c\x20\x3a\x76\xb4\xc9\x7b\x4f\x60\x9f\xe0\x36\x87\xf3\x14\x0f\x7d\xcf\xc3\x40\x29\xc3\x3b\x05\x88\xbe\x27\x5e\x76\xde\x04\xdb\xc1\x82\x9b\x43\xff\x3a\x29\xd1\xdb\x1e\x42\xd7\x48\xaf\x33\x4e\xd6\x53\x57\xc5\x92\x4d\x17\x9d\x9e\xbc\xc2\xc3\x0f\x5f\xfd\xb7\x34\xb7\x34\xf0\x41\x5e\x6c\x51\x7b\x4f\x42\xdf\x3b\x89\x90\xf0\x9d\x23\xfa\xd1\xf1\xf8\x40\xe3\xa3\x6c\x11\xa3\x6f\x65\xbc\x47\x8d\x89\x8d\x2b\xa4\xe0\x1f\x70\x47\x98\x55\xd5\x87\x56\x29\xea\xc8\xb2\x46\xa7\xf5\xe9\x29\x2b\xbc\xd7\x30\xc1\x11\x7f\xfe\x04\x06\x27\x27\x27\x59\x76\x11\x11\x6d\xd5\x6d\xa8\xef\x86\xce\x11\x1a\x05\xd8\x78\xb6\x9b\x7e\x88\x4a\x36\x9b\x0e\xf3\x31\x8d\x5d\x82\x26\x44\xf1\x3c\x26\x18\x52\x75\x40\x52\xb5\x3d\x9f\x8b\x8b\xb9\x78\x65\xe6\xe2\xaf\xf2\x5e\xf2\xab\x08\xfd\x80\x36\xba\x45\x71\x7f\xdb\x49\x94\x95\x6b\x6b\xee\x75\x39\x4c\xb2\x49\x5c\x54\x65\xf1\x7d\xd3\x37\x46\xd7\x9c\xdc\x50\x8f\x1e\x5a\xfb\xef\xa4\xdd\x11\x01\x1b\xf3\x47\xcc\x53\x94\x6d\xcc\xba\xf6\x3d\x67\xfc\xfe\xbf\xb8\x92\xca\x67\x98\xf0\xe2\x68\x46\x0d\x99\x4a\x47\xac\xb5\x71\xea\x4f\x63\x10\x49\x29\xd3\x53\x20\xf5\x19\x91\xed\xf7\x16\x1c\xf6\xfd\xcb\x14\xea\xe5\x9c\x58\x29\x4c\xe6\x45\x18\x1c\xf7\x07\x1e\xe6\x92\xf8\x67\x9c\x2f\xd4\xd0\x20\x14\xc4\x0b\x9a\x52\xa7\x73\xb0\xa7\x7a\x7a\x84\x0f\xf7\x28\xd2\x9e\x9f\xe2\x0c\x8d\xe1\x59\x8d\xd9\x98\x9f\x26\xe3\xff\x30\x14\xd8\x38\x43\xfc\x4e\x94\x8c\xf6\xf0\x19\x11\xcf\x2c\xb2\xff\x06\x00\x00\xff\xff\xb4\x77\x6b\x7e\xa9\x19\x00\x00") +var _runtimeHelpHelpMd = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x9c\x59\xdd\x73\xdb\xb8\x11\x7f\x36\xff\x0a\x8c\x72\x33\x97\x5c\x25\x79\x7a\xed\x93\xdf\x7c\xb6\xf3\x71\x97\xc4\x3e\xc7\x69\x2f\xf7\x12\x42\x24\x24\xe1\x4c\x12\x0c\x00\xca\x56\xda\xeb\xdf\xde\xdf\x2e\x00\x8a\x94\xe4\x4c\xa7\x79\x89\xb8\xbb\xd8\x2f\xec\x17\xd6\xcf\xc4\x3b\x5d\x58\x23\xd6\xaa\x6a\x85\x57\x8f\x3e\xcb\x02\x40\x3b\x21\x01\xb0\xb5\x6e\x64\x35\x5b\x48\xa7\x4a\xc6\x0b\x55\x6a\x6f\xac\xf0\x6b\xe9\x85\xd4\xb5\x13\xde\x88\x85\x12\x4a\xba\x2d\xfd\xec\x9c\x12\xb2\x29\x85\x6e\x7c\xa7\xbd\xde\xa8\xa9\xc8\x1e\xd6\xba\x02\xb4\x72\x46\x78\x79\xaf\x9b\x95\x90\xe5\x46\x36\x5e\xae\x94\x30\x4b\xb0\x52\x62\xd9\x55\x95\x28\x64\x2b\x17\xba\xc2\x31\xe5\x08\x51\x9b\x52\xd9\xa6\xd7\xc2\xcd\xb3\xec\xd9\xb3\x67\xe2\xa3\xc3\xc1\x2c\xbb\x6e\x0a\x25\xb6\xa6\x13\x6b\xb9\x51\x62\xd1\xe9\xca\x33\xab\xa0\xe0\x54\x38\x5d\xb7\xd5\x56\x38\x2f\xad\x17\xda\x8b\xc5\x56\xd8\xae\x69\x48\x7c\x96\xd7\x6c\x64\x2b\xfd\xfa\xd4\x9b\xd3\x25\xf4\x9b\xfb\x47\x9f\x0b\x58\x16\xcf\x05\x92\x9c\x6c\x32\xad\x6a\x60\x94\x50\x75\xeb\xb7\x90\xb4\x5c\x2a\x3b\x4f\x8e\x62\xb3\x5c\xd7\xb6\xc6\x7a\x27\x0a\xab\xa4\x27\x11\x81\xca\x89\xa5\x35\x35\x74\x28\x75\x73\x96\x65\x79\x9e\x67\xdf\x09\xbd\x2c\x4c\xb3\xd4\x2b\xf1\x6f\xc1\x32\x18\x9c\x7d\x82\x25\x05\x84\xd4\x06\xd6\x90\x1d\x45\x67\x1d\xd4\x91\xd6\x74\xf0\xe7\x83\xf6\x6b\x06\x4b\x6b\xcd\x83\xb8\x57\x5b\xc7\x7e\xae\x0d\x3c\x1e\x1d\xf3\x8b\xda\x2e\x74\x03\x51\x2b\x97\x65\x77\x6b\x45\x57\x61\x03\xb3\x52\x2d\x65\x07\x07\xdd\xef\x48\xa6\x50\xdd\x40\xd3\xc4\x59\x43\x56\xe1\xb5\x69\xc8\xcf\xd9\x0f\xe2\xc2\xdb\x6a\xf6\xe5\x4c\x08\xf1\x2b\x6e\x32\x01\x14\x01\xae\x1e\x55\xd1\x79\x70\x17\x85\xa9\x6b\xa8\x91\xb0\x2b\xc2\xde\x99\xd5\x0a\xf7\xbd\x0b\xa9\x88\x5c\x10\xf2\xb6\x83\x2b\x85\x03\xb2\xda\x3f\xec\x08\xff\x01\x97\x99\x00\x86\x00\xd7\xe4\x7c\xba\xa0\x04\xfd\x4a\xd0\x8f\x4d\x69\x12\x60\xcb\x7c\xd5\x0e\xb0\x24\xc0\x4b\xbd\xe3\xdc\x24\x80\x68\x06\xfa\xb4\x3d\xb4\xb5\x6a\xa3\xe1\xc8\x84\x91\xac\x89\xaa\x54\x81\x18\xaf\xaa\x04\x2e\x08\x7c\x61\xda\x6d\x02\x3c\x32\xa0\xeb\x39\xde\xc7\x6f\x51\xe9\xa6\xd7\xb7\x24\xe0\x65\xd7\x56\xba\x90\xf0\xd9\x10\xb5\x21\xd4\x8d\x74\x9e\x20\x37\x88\xea\x8f\x6d\x80\x20\x31\xba\x36\xc2\x2e\xcd\x03\xf4\x67\x58\x89\x9f\x80\xbe\x36\x35\x5f\x83\x10\xaf\x4c\x48\xbf\x95\x0e\x81\x8d\xa4\x89\xfc\xaf\x9a\x32\x90\x44\x1a\x05\x33\x77\x58\x96\x6e\x07\x97\x45\x70\xd1\x74\xf5\x02\x31\xbb\x8b\x45\x4a\x66\x8e\xb9\x10\x39\x4e\xfc\x25\x84\x1f\x27\x3d\x07\xea\x83\xb1\x25\x65\x16\xfd\x3f\xcf\x88\xad\xa8\xd4\xd2\x73\x68\x5a\xbd\x5a\xfb\x83\x78\xc6\x49\xfa\x0a\x69\x49\x64\x51\x33\x02\x92\x16\x53\x02\x66\x05\x71\xea\x5a\x26\x20\xab\x0f\xd9\x3c\xc5\xa3\x4f\xcf\x64\xc4\xda\x54\x25\x02\x4e\x43\x2b\x0e\x75\x5c\x68\xa4\x85\x75\xc4\xb6\x56\x8d\x4f\xa1\x4f\xea\xb9\x70\xf1\xa1\x6a\x81\x00\x8e\x9d\x73\x3e\x89\x94\x3a\xa2\x96\x5b\x2a\x7a\x56\x2d\x38\x39\x3b\x47\xce\x27\xe9\xf9\x7f\x4e\xe7\x21\xbb\x4f\x39\xb7\x4f\xd3\x91\xf9\x1f\xce\x34\xb9\xc8\xb8\xd4\x88\x2b\x59\xac\xc9\xa3\x54\x66\x03\x0b\xc8\x85\xae\x41\x0b\x48\x7b\x09\x13\xd5\xa3\x44\x25\x82\x43\xe8\x8a\x29\x4c\xf3\x10\xee\x5c\x93\x70\xc6\xb0\xe9\x01\xf8\x95\x81\x16\x49\x30\xe5\x9a\x58\x98\x0e\x56\xb7\x5d\x28\x89\xd9\xd2\x54\x95\x79\x20\x25\x75\x13\xf4\xdc\xd3\x8b\xd5\xe2\x02\x45\xdf\xd9\xbf\xb2\x93\x09\xf1\xfd\x34\x39\x13\x13\xca\xb5\xc9\x34\x42\x7e\x27\x08\x25\xdb\x24\xfb\x33\x14\xae\xd7\xca\x1e\xd4\x19\x77\x36\xe4\x45\x51\x38\xf9\xd8\x4e\x62\x40\xc6\x7f\x93\x0b\xbe\x49\xc0\xa7\x81\x82\x02\x7d\x44\x13\x29\x18\x1e\x69\x6e\x29\xa6\x86\x44\x91\x26\xc0\x23\xd1\x5b\x44\xe0\x31\x46\x0c\x8f\x34\x1f\x28\x20\x86\x3a\x4d\x42\xbe\xef\xd4\x61\x8a\xa1\x4e\x91\x62\xa8\x0e\xd3\x0c\xc5\x45\x9a\x03\x49\x43\xbd\x23\xcd\x48\xe5\xf3\xca\x8f\xb5\x9e\xfc\x13\x19\x35\x64\x03\x8a\xb1\xf1\x4c\xb1\xcf\x64\x2c\x2c\x4a\x7a\x92\xb0\x17\x39\x20\x1c\xca\xa4\x0b\x1f\xa9\x35\xf9\x40\x29\x77\xbd\x7c\x8b\x44\x1d\x12\x8d\x34\x9b\xa0\xf6\x1c\x92\x8c\x04\x46\x79\x77\xe6\x09\x7e\x23\x33\x7a\xe2\xa3\x7c\x47\x71\x15\x2f\x9a\xb9\x0e\x89\x46\xa1\x15\x89\xc0\xed\x40\x64\x62\x36\xd6\xef\x80\x2c\xb1\x1b\x6a\x96\x88\xae\x1a\xcc\x2b\xa3\x08\x7d\xd3\x38\x65\x7d\x80\xa7\x98\x68\x65\xa1\x8e\x10\x05\x78\x24\xfa\x49\x16\xf7\x6e\x48\x38\x80\xec\x93\xfc\x98\x62\xeb\x80\xe4\x4e\x2e\xc6\x89\x17\x45\x11\x7c\x60\xd7\xf5\x48\x1b\x6a\xba\x2f\x51\x12\x46\x96\x8f\x28\xa8\x4f\x0f\xb1\x2f\x47\x58\xea\xaa\x43\xec\xfb\x03\xec\x7b\x34\xe2\x21\xc5\xcd\x01\xc5\x4d\x6c\xca\x43\xaa\xdf\x47\x54\xb1\x30\xf5\xd8\x4f\x23\x2c\x17\xa9\x01\xf6\x62\x5c\x36\xd0\xc6\x87\xd8\xdf\xf6\x8a\xca\x48\xb9\x5f\xf6\x91\xfb\x41\x78\x39\x22\xe8\x9b\xfd\x3e\xd9\x3f\x46\x64\xdc\xf8\x87\xe8\xf3\xb1\x87\x39\xb6\xce\xab\x2a\x91\x50\xdb\x1f\x97\xb5\x51\x74\x52\x0c\x8e\x2f\x7a\x10\x95\x37\xab\xbd\xfa\x3b\x09\xe3\xc6\x0e\x7f\xd9\x1c\xe2\x87\xa5\x8e\x14\x7c\x35\x52\x30\x8c\x0e\xaf\x31\xe6\x8d\x4a\xc1\x11\x9a\xdb\xae\xda\xc5\x3e\x17\x95\x11\xd1\xcf\x5d\xdd\x0e\x5d\x75\x09\xcb\xfd\xd0\xd4\x04\x49\x96\xba\x62\xcf\xd2\x8b\x4a\x49\xca\x7a\x3f\x0e\x97\x9f\xc6\x0e\xa5\xa1\xf3\x1d\xde\x14\x43\x92\x5f\x47\x24\x34\xe9\x0e\xb1\x57\x7b\x31\xc3\xf3\x6a\x64\xc1\x54\xa7\xa7\xe2\xaa\x96\x85\x9b\x39\xbf\xc5\xb4\x30\x18\xaf\xfb\x4a\x3b\x5b\x52\x0d\x3b\x56\x83\x67\x8b\x84\xd9\x2b\xf4\x33\xc9\x65\xef\xb0\x36\x12\x8e\x1c\x73\x58\x62\x09\x43\x37\x7c\xd0\x55\x09\xd1\xec\x10\xf1\x4a\xff\x0c\x8f\x91\xf0\x6e\xb8\x31\xce\xe9\x05\xd4\x8f\x03\xf9\x60\x02\x54\x69\xd2\x6f\xd2\xc3\x2f\xd2\xd0\xd0\x87\xb1\xd9\xf1\xe4\x13\x66\x10\x85\x31\x82\xe7\x0c\xc5\x58\x1e\xd6\x02\xf1\x7c\x3c\x24\xb4\xfb\xf2\xc2\x6b\x72\xbb\x9b\x3a\xe7\xf4\x00\xc9\xbf\xe0\x36\xf2\x33\x7e\x7e\xb8\xf0\x54\x9a\x13\xd8\xa1\xf4\x00\x4c\x15\xc8\xa5\x91\xd0\xd2\x0c\xd7\x8f\x7e\x20\xb2\xaa\xad\x50\x05\xc5\xc4\x21\x32\x8a\xf5\x44\x4c\x36\xb2\xea\xd4\x44\x2c\x2b\xb9\x72\x38\x7e\xb7\xc6\xec\xf5\xa0\x31\x0c\x26\xd2\x3c\x90\xe6\x61\x4c\xcc\x99\x3e\x9f\x0b\x72\x23\x0d\x7f\x79\x38\xc9\x56\x98\x96\xe6\x34\x59\xcd\x09\x79\x4e\x43\x16\x98\xb5\x06\x8f\xde\x29\x69\x04\x0a\x7c\x9b\x06\xcf\x48\x83\xb9\x9a\x0e\x9e\x89\xbc\xc8\xa7\x34\x54\x62\xf2\x53\x8d\x84\xf9\x0e\xa0\xb5\x2a\xee\x73\x7e\xe8\xb2\x9c\x80\x96\xee\xde\xe1\x95\x48\x0e\xf9\xbe\xc4\x50\x7c\xaf\x68\xb8\x6b\x95\x5d\x1a\x5b\xb3\xc5\x51\x65\x9e\x5c\x15\xcd\x92\x5e\xd7\x8a\x23\xf2\xbd\xf1\x2a\xb8\xb3\x37\xa7\xee\x9c\xa7\x69\x55\x0a\x98\xa4\x31\x97\xab\x95\x7a\x9c\x0b\xf1\x66\xc9\xda\xc5\xb9\x59\xda\x55\x47\xfc\x38\x70\x4b\x03\xed\x1a\xe3\xc3\xdb\x5a\x36\x78\x46\x53\x4f\x71\x34\x3e\x6a\x1f\x46\x4c\x9a\x81\x4d\xad\xc3\x84\xf9\xa5\x83\x5c\x17\x5c\xef\x94\x8f\x0e\x12\xc1\x87\x67\x18\xa9\x7d\xb8\xaa\x08\x87\x39\x8c\x9a\x8b\x1b\x64\x2e\xe6\x70\xa7\x42\x68\xd0\xfb\x0c\x1f\x3c\x06\x23\x9a\x2c\x29\x23\xe1\x02\x58\x00\x3d\xc3\x69\xd7\x47\x0a\xd8\xc6\xdb\xc6\xab\xd2\xad\x67\x31\x9e\x20\x10\x80\x20\x70\xa5\x37\xaa\x19\xbf\x37\xd3\x0c\xbc\x40\xab\x5c\xf1\xeb\x7a\xce\x17\x4c\xb2\x22\xc9\xf7\xb8\xbd\xce\xd3\xf8\xcc\x11\x02\xe7\x95\xda\xc1\xe5\x5b\xc5\xa7\xc9\x6d\xfc\x62\x7a\x58\x2b\x72\x08\xc6\xe7\x46\x43\x86\x4b\x1b\x86\xf8\x20\xbf\x0e\xfa\xa6\x55\x81\x43\xfe\x80\x66\xf7\x00\xa1\x50\xa7\x8c\xa2\xf7\x42\x67\x25\x1b\xcd\x1e\x76\x7b\xc0\x52\x5b\xf8\xc4\xd8\x6d\xbf\x76\xc0\xc9\x60\x60\xfe\xdd\x6f\x97\xaf\x3e\x5f\x5c\xbf\x7f\xf9\xe6\xd5\xe7\xd7\xd7\xef\xae\x4e\xe3\xe2\x42\xc6\xe4\x78\x82\x91\x38\x77\x14\x52\x19\xd1\x80\x03\x2e\x58\x15\x53\x8a\xba\x03\x86\x39\x05\x33\x05\x03\xdc\x3d\x3d\x78\xe1\x30\xb6\xa3\xf5\x10\x04\x66\x3b\x89\x23\x9d\x47\xe9\x9f\x6e\x71\x94\xf4\xe0\x7d\xc6\x57\x59\x98\xca\x58\x87\xc4\xa8\x29\x70\x2a\x23\xcb\x64\x47\x0f\x0f\x8e\xe4\x9b\xa0\x3b\xfb\xee\x79\x90\x78\xa9\xed\x8b\xd3\x01\x99\x3b\xcd\x83\xa8\x7c\x1e\xf6\x2c\xd9\x49\x5a\x83\x70\xf0\x21\x25\xe3\x77\x9e\x9d\xec\xf2\x66\xb8\x2e\x19\x72\x13\xcf\x23\x74\x2a\x9c\xa9\xa4\xd5\x5f\x55\xc9\x8f\xd5\xdd\xe7\xcc\x17\x2f\xb2\x13\xb2\x93\xdc\x55\x19\x9a\x01\x58\xcd\x5e\xc1\x29\x62\xa9\x90\xf1\x5d\xbd\x65\x97\x28\x3c\xba\xcb\x52\xf5\x61\x19\x56\x53\x68\x23\xd2\x6e\xa1\xf2\xdd\x9e\xed\xe4\xac\x85\x8a\x8f\x54\x9c\xe2\x05\x13\x85\x14\xaf\xd1\x74\x15\x92\x94\x5f\x7d\x27\xfb\x8f\xd1\x91\x73\x86\xb1\x10\x62\x0a\xc1\x8f\xd3\x28\xdd\xc9\xfc\xb8\x1a\xb2\x4a\x65\x27\xc3\xb3\xb8\xa9\x93\x1f\x12\xd5\x59\xa8\x7e\xda\x3d\xe5\xb9\x39\x11\xf7\x3e\x1a\x93\xf7\xe0\x91\x8d\xcf\x39\x9e\xa2\x19\xae\x80\xfc\xc6\xad\x8d\x7f\x81\x62\x7c\x22\x04\xf5\x26\x7c\xd2\x03\x97\xcb\xd3\x11\x3e\xa2\x95\x18\x18\x70\xa3\xe0\x81\x08\xb3\xfd\x0e\x31\xad\x28\xb5\x1f\x6b\x85\x9b\xfb\x5f\x14\x5b\xd2\xe6\xc1\x76\xf1\x46\xa6\xe2\x0f\x2a\xad\xa4\x53\x2d\x51\xa4\x5d\x67\xd5\x9e\xb8\x7e\x31\xb8\x3b\x85\xdb\x03\x1b\x15\x97\x06\x3a\x2c\x30\xfa\xc8\x23\x66\xef\xde\x5c\xdc\x5e\x7f\xbe\xbb\xfd\x78\x75\x71\xfd\xf6\xfa\x16\xed\x62\xa3\xad\x69\xb8\xda\x6f\xa0\x15\x35\x0f\xd2\x93\x0a\x2d\xec\xf9\x6b\xe2\xc8\xfb\x10\x62\x1a\x7b\x25\xe7\x93\x97\x0b\x07\x3b\x86\x45\x18\x20\x41\x30\x3a\x9c\x52\xe4\x48\x72\xfc\x3d\x67\x06\x98\x67\x20\xb8\x58\x4b\x3b\xe4\x11\xa0\xa1\xa8\x10\x4e\x22\x18\xed\x11\x26\x22\x32\x59\x35\xd0\xb0\x40\xa9\x07\x93\xd4\xc9\xe8\x73\xa6\xf1\x1a\x69\x1c\xaf\x8a\x45\xe8\x58\xca\x1d\xe1\x63\x96\xcb\xc0\xc9\x6d\x21\xf6\x11\x5c\x7c\x67\x51\x44\xc2\x27\x2a\x32\xad\x6e\x41\x74\xec\x68\x93\xf7\x9e\xf0\x26\x34\x32\x9c\xa7\x30\xe8\xbb\x1a\x26\x71\x19\x56\x48\x20\xfa\x96\x78\xd9\x79\x13\x6c\x07\x0b\x2e\xff\xfd\xca\x57\xa2\x7b\x3d\x84\xbe\x90\x16\x67\x4e\xd6\x63\x57\xc5\xa2\x4c\x65\x2b\x2d\x1d\xc3\x4e\xee\x69\xb5\x2d\x0d\xcf\x10\x16\x3b\xd0\xde\xaa\xee\xc9\x63\x8e\xa7\x61\x22\x1e\x9c\x8d\x5b\x33\x1f\xa5\x8a\x18\x74\x0b\xe3\x3d\xaa\x48\x6c\x4a\x21\xe1\xbe\xc5\x1a\xd1\x55\x55\x35\x26\x06\xdd\x80\xb9\xac\xd1\x43\x7d\xda\x2e\x86\xee\xfc\xc0\xe9\x99\x46\x17\xea\xee\x72\x61\x36\xe1\x4f\x03\x0b\x85\x19\x71\xb0\xcb\x3b\x22\xe9\x6f\x43\x41\xe8\x4c\xaa\x3c\x22\x87\x18\x33\x01\xa7\x25\xf5\xe4\xf8\xa9\xd0\xf2\xfd\x11\xae\x3f\x82\xeb\x6c\x36\xcb\xb2\xcb\x88\x68\xab\x6e\x45\xed\x3c\x34\xa4\xd0\x7f\xc0\xdb\xb3\xbf\xe9\x87\xa8\x64\xb3\xea\xf0\x12\xa2\x69\x4e\xd0\xe0\x29\x9e\xc7\x94\x46\x65\xd8\x21\xa9\x8e\x5f\x4c\xc5\xe5\x54\xbc\x32\x53\xf1\xb3\xdc\x48\x9e\xbe\xe9\x07\x74\xd2\x2d\x7a\xc6\xdb\x4e\xa2\x7e\xdd\x58\xb3\xd1\xe5\x6e\x40\x4e\xe2\xa2\x2a\xf3\x6f\x78\x7d\x65\x74\xcd\xb5\x04\xba\xd1\x16\xbd\xff\x4e\xaa\x1d\xe1\xbe\x32\xdf\xe4\x9c\x82\x7a\x65\x96\xb5\xef\xd9\xe2\xf7\xff\xcf\x92\x94\x3d\xc7\xbc\x18\x07\x3d\x8a\x05\x2a\x53\xb1\x96\xc7\x37\x44\x1a\xaa\x48\x44\x99\x36\xc2\xd4\xbb\x44\xb6\xdf\xb2\x70\xd8\xf7\x7b\x4a\x54\xe5\x29\xb1\x52\x98\xf3\x8b\x30\x86\xee\x8f\x4f\xcc\x25\xf1\xcf\x38\x37\xa9\x49\x42\x28\x88\xe7\x34\xf3\x8e\xa7\x6a\x4f\x85\xfb\x08\x1f\x6e\x7d\xa4\x3d\x2f\x66\x0d\x0d\xf5\x19\x1e\x7a\x6b\xde\x50\xc7\x3f\x11\x15\xa6\x8d\x29\x35\x52\x32\xda\xc3\x67\x44\x3c\x33\xcf\xfe\x1b\x00\x00\xff\xff\x81\x33\x3f\xa2\x6a\x1b\x00\x00") func runtimeHelpHelpMdBytes() ([]byte, error) { return bindataRead( @@ -255,12 +255,12 @@ func runtimeHelpHelpMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/help/help.md", size: 6569, mode: os.FileMode(420), modTime: time.Unix(1463613125, 0)} + info := bindataFileInfo{name: "runtime/help/help.md", size: 7018, mode: os.FileMode(420), modTime: time.Unix(1464449157, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _runtimePluginsGoGoLua = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x94\x91\xcd\x6e\xe3\x20\x14\x85\xf7\x7e\x8a\x2b\xa4\x91\xf0\x8c\xc7\x0f\x60\x29\x8b\x99\x45\xb3\x4c\xd5\x76\x57\xb5\x15\xb5\xaf\x6d\x24\x02\x08\x70\xd2\xaa\xea\xbb\xf7\x62\x93\xbf\xc6\xfd\x63\x63\x99\x7b\xce\xc7\x39\x20\x5b\x58\x62\x58\xd9\x20\x8d\xe6\xac\x33\x72\x6d\x8d\x0b\x9e\xe5\xb0\x58\x80\x96\x0a\x42\x8f\x3a\x03\x5a\xff\x9a\xe6\x5c\x56\x40\x2b\x94\xc7\x3c\x43\xdd\x64\xef\x59\xed\x3a\x7c\xc5\x89\x92\x02\x82\x1b\x12\x22\x6b\x07\x5d\xc7\x21\x74\xe6\xc1\xe8\x6b\xb1\x41\x9e\x8f\x36\x82\x6f\x24\x6e\xcb\xff\x43\x5b\x5e\x48\x85\x37\xcf\x16\x23\x9b\x2d\x0d\x3b\xc0\x93\xf2\x83\x4a\x27\xb2\xb8\xe8\x90\xfd\x3c\x9d\x13\x17\x52\xa5\xf9\x32\xf3\x04\x9a\x1d\xbb\x63\x8f\xdd\x4f\xcc\x5c\x5d\xe1\xca\xa2\x4e\x92\x38\x3e\xab\x7a\xcc\x50\xa6\x16\x0a\x7a\xa1\x1b\x45\x0d\x41\x9a\xd2\x9a\x68\x9f\x42\xc0\xdf\x2d\x30\x28\xcb\xc3\x6d\x5c\x8a\xd0\x1f\x3b\x1d\xfa\x41\x05\x72\x4e\x88\xca\xa1\x68\x38\xfb\x2d\xd8\x24\x4a\xbb\xb5\x32\x3e\xde\xed\x4c\x94\xd3\x0b\xf9\x24\x4e\x12\xfe\x20\x12\xf1\xbd\x55\x32\xf0\xb3\x6c\x05\xb0\xea\x9b\x09\x27\x82\x0f\xae\x00\x8f\x76\xf6\x9c\x97\xd7\x93\xdd\x0e\x9f\x68\x93\x33\x7e\x7b\xff\xcb\xdf\xfd\xc9\x59\x5e\xb5\xc6\xad\x05\x51\x76\x00\xfa\x07\x14\x75\x0f\x52\x03\xa1\xab\x8e\xa6\x75\xcf\x47\x6f\x0e\x8d\xd9\xbf\x68\x10\x8f\x0a\x4b\xa9\x3d\xba\xc0\xa7\x03\x8b\xd1\x79\x78\xde\xf8\x75\x18\x06\xa7\x53\xa2\xb1\xc3\x5b\x00\x00\x00\xff\xff\x5a\x41\x0a\x22\x6b\x03\x00\x00") +var _runtimePluginsGoGoLua = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x9c\x91\x4f\x4f\xb4\x30\x10\xc6\xef\x7c\x8a\x49\x93\x37\x29\xef\x22\x89\x57\x92\x3d\xe8\xc1\x3d\xae\x51\xe3\x65\xb3\x9a\x0a\x03\x34\x29\x2d\x69\xcb\xae\xc6\xf8\xdd\x6d\xa1\xfb\x4f\x58\x35\xf6\x02\xed\xcc\xfc\x9e\xe7\x69\x79\x09\x0b\xb4\xcb\xd6\x72\x25\x29\xa9\x14\x6f\x5a\xa5\xad\x21\x31\xcc\xe7\x20\xb9\x00\x5b\xa3\x8c\xc0\xad\xab\xa2\x18\xb7\x25\x50\x32\x61\x30\x8e\x50\x16\xd1\x57\x56\xd9\xd8\x9f\x38\xbe\x25\x01\xab\xbb\x80\x88\xca\x4e\xe6\xbe\x08\x95\x7a\x56\xf2\x9e\x6d\x90\xc6\xfd\x98\x83\x6f\x38\x6e\xcd\xaa\x61\x5c\x3e\xba\xbf\xd9\xe5\x3a\xbd\xee\xca\xf4\x86\x0b\x7c\x78\x6b\xd1\x0b\x91\x85\x22\x07\xa5\x30\x76\x26\xdf\x49\x9b\x5f\x4e\x71\x5f\x0f\xa2\x7e\xa1\xcb\x37\x9d\x6c\x9a\xe0\x6a\xc7\xd3\x3e\xd4\x6e\x33\x0a\x90\xdd\xe1\xb2\x45\x19\xfa\x7d\xef\xe8\x12\x8e\x81\x42\xe5\x4c\x40\xcd\x64\x21\x5c\x5c\xe0\x2a\x6d\x95\x1f\x1f\x1c\xc1\xc5\x16\x08\xa4\xe9\x99\x7b\xba\x65\xb6\x3e\xc6\x68\x34\x9d\xb0\x0e\x33\xf0\x32\x8d\xac\xa0\xe4\x3f\x23\x43\x53\x38\xcd\x85\x32\xfe\x09\x26\x7c\x9d\x5e\xd5\x37\xde\x42\xe3\x5f\xfd\x39\x31\xd3\x0a\x6e\xe9\xc8\x68\x02\x24\xfb\xa5\xdd\x81\x60\xac\x4e\xc0\x60\x3b\xa9\xf3\xfe\x71\x72\x5a\xe1\xab\x3b\xa4\x84\xae\x9e\xfe\x99\xf5\x2c\x26\x71\x56\x2a\xdd\x30\x47\xd9\x01\xdc\x1e\x90\xe5\x35\x70\x09\x0e\x9d\x55\xae\x9a\xd7\xb4\x9f\x8d\xa1\x50\xfb\x87\xb7\xec\x45\x60\xca\xa5\x41\x6d\xe9\x20\x98\xf4\x93\x87\x87\xf7\x5f\x8d\xb6\xd3\x32\x38\xea\x33\x7c\x06\x00\x00\xff\xff\xff\xc6\x74\xc8\x9f\x03\x00\x00") func runtimePluginsGoGoLuaBytes() ([]byte, error) { return bindataRead( @@ -275,12 +275,12 @@ func runtimePluginsGoGoLua() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/plugins/go/go.lua", size: 875, mode: os.FileMode(420), modTime: time.Unix(1463528401, 0)} + info := bindataFileInfo{name: "runtime/plugins/go/go.lua", size: 927, mode: os.FileMode(420), modTime: time.Unix(1464449500, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _runtimePluginsLinterLinterLua = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x8c\x55\x6d\x6b\xe4\x36\x10\xfe\xbe\xbf\x42\x88\xba\x58\x89\xed\xd0\x7c\x5c\x48\xe1\x7a\xa5\x81\x72\xed\x1d\xe4\xca\x7d\xe8\xcb\xa1\xb5\xc7\x6b\x35\xb2\x64\x24\x39\x9b\xa5\xf4\xbf\x77\x24\x39\x5e\xdb\x38\x71\x97\x10\xcd\xca\x33\xcf\x33\x2f\xcf\x8e\x45\x4d\xee\xc1\x7d\xec\x9c\xd0\x2a\xa5\x52\x28\x07\x86\x32\x72\x77\x47\x94\x90\xc4\x35\xa0\x76\x04\x3f\xef\xaa\x6a\xe1\x93\x11\x67\x7a\x60\x3b\x50\xd5\x6e\x57\xf7\xaa\xf4\x4f\x49\x7c\xf8\x55\xab\x07\xfe\x04\x29\x0b\xb1\xaf\x50\x8c\xd8\xfe\x23\x75\xc9\x25\xa9\x1d\xb9\x23\x4f\x02\x4e\xc5\x0f\x7d\x5d\xfc\x24\x24\x7c\x3e\x77\xb0\x74\xc2\xeb\xa9\xdb\x27\xee\x9a\x85\x4b\x05\x4f\xaa\x97\x12\xbd\xe8\x0d\xda\x37\xfe\x0b\x1d\x7d\x30\x9f\x8f\x0f\xbe\x42\x7a\x12\xaa\xd2\x27\x4b\xe7\xb9\xf8\xcf\x04\xe1\xd7\xdf\x3e\x5c\x62\x7d\xb5\x13\x1c\x9f\x30\xba\xdc\xeb\x15\x88\xa1\x15\xfe\x48\xe9\x51\x1f\x7a\x21\x2b\xec\x1a\x9a\x24\xd8\x24\xd7\x84\x92\xa2\x78\xe1\xc2\x47\x49\xbd\x4f\xe4\x9e\x24\x2d\x65\x6f\x41\xf9\x33\x22\x79\x2b\x82\xcc\xda\x31\x42\x25\xd5\xf5\x02\x0e\xa4\x85\x4b\xe2\x1f\x7a\xbe\x95\xb9\xec\x79\xd9\x40\xf9\xe8\x09\x5f\x6c\x92\xe7\x4a\xe7\xa5\x96\xda\x44\x76\x3f\x93\xff\x4d\xfa\xe9\xec\x1a\xad\xb6\x78\xbb\x73\x2d\xf9\x23\x58\xcf\xfb\x62\xaf\x90\xbd\x45\xf4\x7e\x73\x2a\x65\x19\xfa\x58\x96\x24\xaf\xed\x59\x39\xfe\x9c\x6b\x25\xcf\x24\xff\xc2\x71\xf8\xf9\x17\x78\x76\x86\xbf\x52\x62\xf1\x76\x95\x3f\x6e\x91\x57\x6d\x90\x03\x1e\x24\xb6\xf2\x4e\xd7\x35\x8a\x22\x27\xf9\x09\xff\x04\xde\x2e\x98\x93\x34\x91\x09\xdb\x22\xfe\x99\x3f\x6d\x0e\xf5\x6f\xf4\x09\xa5\x07\x63\xad\xad\x60\x8c\x36\x9b\x3c\x0f\xa5\x11\x9d\xdb\x64\xb3\xcd\xa0\xd8\x68\x2d\xf9\xbc\x37\x90\x44\x66\xc5\x75\xb6\x60\x1c\x7e\x6e\x9e\x79\xbc\xf4\x52\xdf\xbf\x97\xc0\xcd\x3b\x29\xef\x7b\x87\x44\xbf\x80\xb5\xfc\x08\x76\xd8\x38\x3e\x6c\x75\x2f\x85\x7c\xa2\x9d\x91\xb2\xad\xb2\x58\x67\xad\x4d\xcb\x5d\x8c\xbd\xa0\x2f\xa0\x63\x18\xdb\x05\xaf\xb8\x67\x1a\xae\xaa\xb0\x8c\x84\x2e\x3a\xdd\x01\xae\xb7\x34\xd4\x86\xd0\xfe\xa0\x2c\x7c\xa3\xe4\xf6\xfb\x6f\xbf\x1b\xca\x8a\x91\xbe\x62\x8b\x81\x43\x5e\xb6\x93\xc2\xa5\x11\x6e\x6f\x80\x57\x29\xbd\xe2\x94\x61\x7b\xfe\x50\x43\xdc\xf0\xb0\x94\xda\xfa\xc5\x3a\xc1\x32\x70\x84\x67\xc4\x9a\x94\xb2\x3f\xda\xfe\x90\xd2\x24\xa9\x7d\xd7\xd3\xe2\x9a\x51\x36\xde\xc9\x70\x87\x12\x9e\x5e\xb6\x17\xc7\x00\x8d\x38\xe4\x6b\x16\x06\x23\x14\x11\x1d\x17\x26\xb4\x00\x2c\x23\x95\x1e\x67\x91\xe7\xe4\xb3\x11\x2d\x39\x35\xc2\x81\xed\x78\x39\xd9\xd6\x3e\x36\x54\x08\x7b\x4c\xa9\x6c\x52\xfa\x57\x62\xaf\x3c\x07\x1e\xdf\x4c\xa6\x8c\x9a\xb2\xce\x08\x75\x2c\x6a\x5c\xc8\x81\x25\x8b\x55\xb1\x15\x65\x8d\x2f\x81\x8c\x44\xcf\xd6\x1e\x91\x67\x40\x88\x4c\x53\x88\x59\x34\x52\x0d\x2d\x3f\x70\x0b\x8a\xb7\x90\xce\x36\x67\x78\xf3\x2d\x3d\x3c\xd9\x4a\x26\xa3\x5a\x66\x42\x19\xe5\xe5\xb4\xea\xdb\x03\x98\x90\x0c\x0b\x69\x66\xe4\x76\x9e\xce\xf4\x75\x32\x6a\xfd\x35\xf1\x46\x91\x60\x9d\x19\xb1\xd0\xb1\x99\x02\x6c\x2f\xfd\xbb\xf3\x9f\x7f\x57\x74\x81\xa2\xfc\x1d\x3b\xff\x67\x98\x77\xd4\x47\x3a\x02\xf8\x39\x03\x6e\x75\x3f\x65\x84\xde\x1f\x63\x03\x87\xee\x4f\x26\xed\xf8\x41\x42\x21\x94\x05\xe3\xd2\x48\x98\x85\xc8\xcb\x4f\xce\x9f\x06\x5c\x6f\xd4\x90\xd1\x7a\x1d\xf3\xbe\x4e\x12\xf6\x97\x97\x49\x06\x65\x0e\x4b\x22\x2d\xae\x6e\x18\xfe\x63\x5e\xa5\xc9\xed\xa0\x9d\x81\xcb\x87\x05\xa6\xff\x02\x00\x00\xff\xff\x6d\xfd\x2d\x23\xcc\x08\x00\x00") +var _runtimePluginsLinterLinterLua = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\x8c\x55\xdf\x6f\xdb\x36\x10\x7e\xf7\x5f\x41\x10\xd3\x20\x26\x92\x82\xe6\xd1\x40\x06\x74\x1d\x16\x60\xe8\xd6\x02\xe9\xd6\x87\xae\x2b\x68\xe9\x64\x71\xa5\x48\x81\xa4\xe2\x18\xc3\xfe\xf7\x1d\x49\x45\x96\x35\x39\xaa\x10\x84\x67\x8a\xf7\x7d\xf7\xe3\xd3\x51\xd4\xe4\x1e\xdc\xbb\xce\x09\xad\x52\x2a\x85\x72\x60\x28\x23\x77\x77\x44\x09\x49\x5c\x03\x6a\x43\xf0\x79\x5d\x55\xb3\x33\x19\x71\xa6\x07\xb6\x01\x55\x6d\x36\x75\xaf\x4a\xff\x96\xc4\x97\x5f\xb4\x7a\xe0\x8f\x90\xb2\xe0\x7b\x81\x62\xc4\xf6\x8f\xd4\x25\x97\xa4\x76\xe4\x8e\x3c\x0a\x38\xd8\x4f\x2d\x17\xea\x0f\xb4\xae\x5f\x7d\x2e\x7e\xec\xeb\xe2\x67\x21\xe1\xc3\xb1\x83\xb9\x07\x6e\x5f\xf4\x79\xcf\x5d\x33\x3b\x5f\xc1\xa3\xea\xa5\x44\x17\x7a\x83\xf6\x8d\xff\x41\xc7\x33\x18\xe9\xbb\x07\x9f\x3b\x3d\x08\x55\xe9\x83\xa5\xe7\x51\xfa\x67\x82\xf0\xdb\xef\x6f\x4f\xbe\xbe\x0e\x13\x1c\x9f\x0a\x1e\xb9\xd7\x0b\x10\x43\x91\xfc\x92\xd2\xbd\xde\xf5\x42\x56\x58\x4f\x34\x49\xb0\x49\xae\x09\x25\x45\xf1\xcc\x85\xaf\x92\x7a\x9b\xc8\x2d\x49\x5a\xca\x5e\x82\xf2\x6b\x44\xf2\x56\x04\xb9\x5c\x9b\x11\x37\xa9\xae\x67\xd8\x20\x2d\x9c\xb2\x78\xdb\xf3\xb5\x34\x64\xcf\xcb\x06\xca\xaf\x9e\xfd\xd9\x26\x79\xae\x74\x5e\x6a\xa9\x4d\x0c\xc5\x77\xeb\x9b\x49\xdf\x1f\x5d\xa3\xd5\x1a\x6f\x77\xac\x25\xff\x0a\xd6\xf3\x3e\xdb\x0b\x64\x2f\x11\xbd\x59\x6d\x51\x59\x86\xa2\x96\x25\xc9\x6b\x7b\x54\x8e\x3f\xe5\x5a\xc9\x23\xc9\x3f\x72\x54\x42\xfe\x11\x9e\x9c\xe1\x17\x52\x2c\x5e\xce\xf2\xa7\x35\xf2\xaa\x0d\xda\xc0\x85\xc4\x52\xde\xe9\xba\x46\x85\xe4\x24\x3f\xe0\x9f\xc0\xdd\x19\x73\x92\x26\x32\x61\x6b\xc4\xbf\xf0\xc7\xd5\xa6\xfe\x8d\x67\x42\xea\xc1\x58\x2a\x2b\x18\xa3\xcd\x2a\xcf\x43\x69\x44\xe7\x56\xd9\x6c\x33\xc8\x37\x5a\x73\x3e\x7f\x1a\x48\x22\xb3\xe2\x3a\x9b\x31\x0e\xdf\x9e\x67\x1e\x37\xff\xa7\xfb\xed\x1b\x09\xdc\xbc\x96\xf2\xbe\x77\xc8\xfa\x2b\x58\xcb\xf7\x60\x87\x29\xe5\x31\x16\x67\x59\x08\x2e\xda\x19\x29\xdb\x2a\x8b\x49\xd7\xda\xb4\xdc\x45\xdf\x0b\x54\x33\x9e\x88\xc1\x36\xc1\x25\x8e\xa3\x86\xab\x2a\x0c\x30\xa1\x8b\x4e\x77\x80\xf3\x31\x0d\x59\x23\x8f\x5f\x28\x0b\xbf\x28\xb9\xfd\xe1\xfb\x57\x43\xc2\xd1\xd3\xd7\xc2\xa2\xe3\x10\xa4\xed\xa4\x70\x69\x84\xdb\x1a\xe0\x55\x4a\xaf\x38\x65\x58\xb8\x3f\xd5\xe0\x37\xbc\x2c\xa5\xb6\x7e\x32\x4f\xb0\x0c\xec\xe1\x09\xb1\x26\x79\x6d\xf7\xb6\xdf\xa5\x34\x49\x6a\xdf\x8f\xb4\xb8\x66\x94\x8d\x7b\x32\xec\xa1\xb8\xa7\x9b\xed\xe9\x60\x80\x46\x1c\xf2\x25\x0b\x2d\x13\x8a\x88\x8e\x0b\x13\x4a\x00\x96\x91\x4a\x8f\x5d\xca\x73\xf2\xc1\x88\x96\x1c\x1a\xe1\xc0\x76\xbc\x9c\x4c\x78\xef\x1b\x32\x84\x2d\x86\x54\x36\x29\xfd\x2b\xb1\x57\x9e\x03\x97\xef\x26\xfd\x47\xb5\x59\x67\x84\xda\x17\x35\xce\xed\xc0\x92\xc5\xac\xd8\x82\xe6\xc6\x8b\x23\x23\xf1\x64\x6b\xf7\xc8\x33\x20\x44\xa6\x29\xc4\x99\x37\x52\x0d\x25\xdf\x71\x0b\x8a\xb7\x90\x5e\x1e\xb0\xe1\x1e\x9d\x1f\xf7\xcc\x0b\x61\x2d\xeb\xe8\x4c\x42\xa3\x0a\x9d\x56\x7d\xbb\x03\x13\xc2\x64\x21\x81\x8c\xdc\x9e\x07\x3a\xbd\x8f\xc6\xef\xe3\x92\xc6\xa3\x7c\xb0\x02\x19\xb1\xd0\xb1\x33\x6d\xd8\x5e\xfa\x6b\xf9\x9f\x7f\x17\x14\x83\x72\xfd\x84\x3d\xf9\x1c\x94\x10\x95\x93\x8e\x00\x5e\x01\x80\x37\x81\xef\x3f\x42\x6f\xf7\xb1\xb4\x43\x5f\x26\x1a\x70\x7c\x27\xa1\x10\xca\x82\x71\x69\x24\xcc\x82\xe7\xe9\xcb\xf4\xab\x01\xd7\x1b\x35\x44\xb4\x9c\xc7\x79\x91\x27\x01\xfb\xcd\x53\x8f\x83\x66\x87\xc1\x92\x16\x57\x37\x0c\xff\x31\xaf\xdf\xe4\x76\x50\xd5\xc0\xe5\xdd\x02\xd3\x7f\x01\x00\x00\xff\xff\x42\x2c\x44\xb3\x27\x09\x00\x00") func runtimePluginsLinterLinterLuaBytes() ([]byte, error) { return bindataRead( @@ -295,7 +295,7 @@ func runtimePluginsLinterLinterLua() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/plugins/linter/linter.lua", size: 2252, mode: os.FileMode(420), modTime: time.Unix(1463528401, 0)} + info := bindataFileInfo{name: "runtime/plugins/linter/linter.lua", size: 2343, mode: os.FileMode(420), modTime: time.Unix(1464449489, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -315,7 +315,7 @@ func runtimeSyntaxDockerfileMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/Dockerfile.micro", size: 841, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/Dockerfile.micro", size: 841, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -335,7 +335,7 @@ func runtimeSyntaxLicense() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/LICENSE", size: 723, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/LICENSE", size: 723, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -355,7 +355,7 @@ func runtimeSyntaxMakefile() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/Makefile", size: 17, mode: os.FileMode(420), modTime: time.Unix(1463657027, 0)} + info := bindataFileInfo{name: "runtime/syntax/Makefile", size: 17, mode: os.FileMode(420), modTime: time.Unix(1464447123, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -375,7 +375,7 @@ func runtimeSyntaxReadmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/README.md", size: 1357, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/README.md", size: 1357, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -395,7 +395,7 @@ func runtimeSyntaxApacheconfMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/apacheconf.micro", size: 6276, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/apacheconf.micro", size: 6276, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -415,7 +415,7 @@ func runtimeSyntaxArduinoMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/arduino.micro", size: 3654, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/arduino.micro", size: 3654, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -435,7 +435,7 @@ func runtimeSyntaxAsciidocMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/asciidoc.micro", size: 984, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/asciidoc.micro", size: 984, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -455,7 +455,7 @@ func runtimeSyntaxAsmMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/asm.micro", size: 780, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/asm.micro", size: 780, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -475,7 +475,7 @@ func runtimeSyntaxAwkMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/awk.micro", size: 1213, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/awk.micro", size: 1213, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -495,7 +495,7 @@ func runtimeSyntaxCMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/c.micro", size: 1613, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/c.micro", size: 1613, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -515,7 +515,7 @@ func runtimeSyntaxCmakeMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/cmake.micro", size: 917, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/cmake.micro", size: 917, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -535,7 +535,7 @@ func runtimeSyntaxCoffeescriptMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/coffeescript.micro", size: 719, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/coffeescript.micro", size: 719, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -555,7 +555,7 @@ func runtimeSyntaxColortestMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/colortest.micro", size: 415, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/colortest.micro", size: 415, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -575,7 +575,7 @@ func runtimeSyntaxConfMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/conf.micro", size: 219, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/conf.micro", size: 219, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -595,7 +595,7 @@ func runtimeSyntaxConkyMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/conky.micro", size: 6330, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/conky.micro", size: 6330, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -615,7 +615,7 @@ func runtimeSyntaxCsharpMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/csharp.micro", size: 1437, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/csharp.micro", size: 1437, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -635,7 +635,7 @@ func runtimeSyntaxCssMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/css.micro", size: 335, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/css.micro", size: 335, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -655,7 +655,7 @@ func runtimeSyntaxCythonMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/cython.micro", size: 998, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/cython.micro", size: 998, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -675,7 +675,7 @@ func runtimeSyntaxDMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/d.micro", size: 3620, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/d.micro", size: 3620, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -695,7 +695,7 @@ func runtimeSyntaxDotMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/dot.micro", size: 729, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/dot.micro", size: 729, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -715,7 +715,7 @@ func runtimeSyntaxErbMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/erb.micro", size: 1357, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/erb.micro", size: 1357, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -735,7 +735,7 @@ func runtimeSyntaxFishMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/fish.micro", size: 1843, mode: os.FileMode(420), modTime: time.Unix(1463528401, 0)} + info := bindataFileInfo{name: "runtime/syntax/fish.micro", size: 1843, mode: os.FileMode(420), modTime: time.Unix(1464447123, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -755,7 +755,7 @@ func runtimeSyntaxFortranMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/fortran.micro", size: 2302, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/fortran.micro", size: 2302, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -775,7 +775,7 @@ func runtimeSyntaxGentooEbuildMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/gentoo-ebuild.micro", size: 1950, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/gentoo-ebuild.micro", size: 1950, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -795,7 +795,7 @@ func runtimeSyntaxGentooEtcPortageMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/gentoo-etc-portage.micro", size: 623, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/gentoo-etc-portage.micro", size: 623, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -815,7 +815,7 @@ func runtimeSyntaxGitCommitMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/git-commit.micro", size: 1129, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/git-commit.micro", size: 1129, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -835,7 +835,7 @@ func runtimeSyntaxGitConfigMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/git-config.micro", size: 254, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/git-config.micro", size: 254, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -855,7 +855,7 @@ func runtimeSyntaxGitRebaseTodoMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/git-rebase-todo.micro", size: 750, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/git-rebase-todo.micro", size: 750, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -875,7 +875,7 @@ func runtimeSyntaxGlslMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/glsl.micro", size: 882, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/glsl.micro", size: 882, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -895,7 +895,7 @@ func runtimeSyntaxGoMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/go.micro", size: 922, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/go.micro", size: 922, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -915,7 +915,7 @@ func runtimeSyntaxGroffMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/groff.micro", size: 723, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/groff.micro", size: 723, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -935,7 +935,7 @@ func runtimeSyntaxHamlMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/haml.micro", size: 585, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/haml.micro", size: 585, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -955,7 +955,7 @@ func runtimeSyntaxHaskellMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/haskell.micro", size: 1089, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/haskell.micro", size: 1089, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -975,7 +975,7 @@ func runtimeSyntaxHtmlMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/html.micro", size: 324, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/html.micro", size: 324, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -995,7 +995,7 @@ func runtimeSyntaxIniMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/ini.micro", size: 401, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/ini.micro", size: 401, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1015,7 +1015,7 @@ func runtimeSyntaxInputrcMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/inputrc.micro", size: 285, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/inputrc.micro", size: 285, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1035,7 +1035,7 @@ func runtimeSyntaxJavaMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/java.micro", size: 596, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/java.micro", size: 596, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1055,7 +1055,7 @@ func runtimeSyntaxJavascriptMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/javascript.micro", size: 1025, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/javascript.micro", size: 1025, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1075,7 +1075,7 @@ func runtimeSyntaxJsonMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/json.micro", size: 402, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/json.micro", size: 402, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1095,7 +1095,7 @@ func runtimeSyntaxKeymapMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/keymap.micro", size: 318, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/keymap.micro", size: 318, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1115,7 +1115,7 @@ func runtimeSyntaxKickstartMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/kickstart.micro", size: 607, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/kickstart.micro", size: 607, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1135,7 +1135,7 @@ func runtimeSyntaxLedgerMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/ledger.micro", size: 432, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/ledger.micro", size: 432, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1155,7 +1155,7 @@ func runtimeSyntaxLispMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/lisp.micro", size: 380, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/lisp.micro", size: 380, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1175,7 +1175,7 @@ func runtimeSyntaxLuaMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/lua.micro", size: 2923, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/lua.micro", size: 2923, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1195,7 +1195,7 @@ func runtimeSyntaxMakefileMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/makefile.micro", size: 967, mode: os.FileMode(420), modTime: time.Unix(1463657110, 0)} + info := bindataFileInfo{name: "runtime/syntax/makefile.micro", size: 967, mode: os.FileMode(420), modTime: time.Unix(1464447123, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1215,7 +1215,7 @@ func runtimeSyntaxManMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/man.micro", size: 264, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/man.micro", size: 264, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1235,7 +1235,7 @@ func runtimeSyntaxMarkdownMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/markdown.micro", size: 893, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/markdown.micro", size: 893, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1255,7 +1255,7 @@ func runtimeSyntaxMpdconfMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/mpdconf.micro", size: 389, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/mpdconf.micro", size: 389, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1275,7 +1275,7 @@ func runtimeSyntaxNanorcMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/nanorc.micro", size: 1042, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/nanorc.micro", size: 1042, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1295,7 +1295,7 @@ func runtimeSyntaxNginxMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/nginx.micro", size: 4846, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/nginx.micro", size: 4846, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1315,7 +1315,7 @@ func runtimeSyntaxOcamlMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/ocaml.micro", size: 767, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/ocaml.micro", size: 767, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1335,7 +1335,7 @@ func runtimeSyntaxPatchMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/patch.micro", size: 242, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/patch.micro", size: 242, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1355,7 +1355,7 @@ func runtimeSyntaxPegMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/peg.micro", size: 395, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/peg.micro", size: 395, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1375,7 +1375,7 @@ func runtimeSyntaxPerlMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/perl.micro", size: 1440, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/perl.micro", size: 1440, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1395,7 +1395,7 @@ func runtimeSyntaxPerl6Micro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/perl6.micro", size: 1649, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/perl6.micro", size: 1649, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1415,7 +1415,7 @@ func runtimeSyntaxPhpMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/php.micro", size: 1431, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/php.micro", size: 1431, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1435,7 +1435,7 @@ func runtimeSyntaxPkgConfigMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/pkg-config.micro", size: 245, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/pkg-config.micro", size: 245, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1455,7 +1455,7 @@ func runtimeSyntaxPkgbuildMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/pkgbuild.micro", size: 1424, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/pkgbuild.micro", size: 1424, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1475,7 +1475,7 @@ func runtimeSyntaxPoMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/po.micro", size: 221, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/po.micro", size: 221, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1495,7 +1495,7 @@ func runtimeSyntaxPovMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/pov.micro", size: 682, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/pov.micro", size: 682, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1515,7 +1515,7 @@ func runtimeSyntaxPrivoxyActionMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/privoxy-action.micro", size: 1545, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/privoxy-action.micro", size: 1545, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1535,7 +1535,7 @@ func runtimeSyntaxPrivoxyConfigMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/privoxy-config.micro", size: 804, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/privoxy-config.micro", size: 804, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1555,7 +1555,7 @@ func runtimeSyntaxPrivoxyFilterMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/privoxy-filter.micro", size: 390, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/privoxy-filter.micro", size: 390, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1575,7 +1575,7 @@ func runtimeSyntaxPuppetMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/puppet.micro", size: 1969, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/puppet.micro", size: 1969, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1595,7 +1595,7 @@ func runtimeSyntaxPythonMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/python.micro", size: 3037, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/python.micro", size: 3037, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1615,7 +1615,7 @@ func runtimeSyntaxRMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/r.micro", size: 238, mode: os.FileMode(420), modTime: time.Unix(1462230701, 0)} + info := bindataFileInfo{name: "runtime/syntax/r.micro", size: 238, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1635,7 +1635,7 @@ func runtimeSyntaxRestMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/reST.micro", size: 470, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/reST.micro", size: 470, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1655,7 +1655,7 @@ func runtimeSyntaxRpmspecMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/rpmspec.micro", size: 1626, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/rpmspec.micro", size: 1626, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1675,7 +1675,7 @@ func runtimeSyntaxRubyMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/ruby.micro", size: 1531, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/ruby.micro", size: 1531, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1695,7 +1695,7 @@ func runtimeSyntaxRustMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/rust.micro", size: 1077, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/rust.micro", size: 1077, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1715,7 +1715,7 @@ func runtimeSyntaxScalaMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/scala.micro", size: 670, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/scala.micro", size: 670, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1735,7 +1735,7 @@ func runtimeSyntaxSedMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/sed.micro", size: 240, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/sed.micro", size: 240, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1755,7 +1755,7 @@ func runtimeSyntaxShMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/sh.micro", size: 895, mode: os.FileMode(420), modTime: time.Unix(1463613125, 0)} + info := bindataFileInfo{name: "runtime/syntax/sh.micro", size: 895, mode: os.FileMode(420), modTime: time.Unix(1464447123, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1775,7 +1775,7 @@ func runtimeSyntaxSlsMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/sls.micro", size: 570, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/sls.micro", size: 570, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1795,7 +1795,7 @@ func runtimeSyntaxSqlMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/sql.micro", size: 1845, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/sql.micro", size: 1845, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1815,7 +1815,7 @@ func runtimeSyntaxSwiftMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/swift.micro", size: 1028, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/swift.micro", size: 1028, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1835,7 +1835,7 @@ func runtimeSyntaxSystemdMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/systemd.micro", size: 5103, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/systemd.micro", size: 5103, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1855,7 +1855,7 @@ func runtimeSyntaxTclMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/tcl.micro", size: 2273, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/tcl.micro", size: 2273, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1875,7 +1875,7 @@ func runtimeSyntaxTexMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/tex.micro", size: 246, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/tex.micro", size: 246, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1895,7 +1895,7 @@ func runtimeSyntaxValaMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/vala.micro", size: 789, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/vala.micro", size: 789, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1915,7 +1915,7 @@ func runtimeSyntaxViMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/vi.micro", size: 355, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/vi.micro", size: 355, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1935,7 +1935,7 @@ func runtimeSyntaxXmlMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/xml.micro", size: 281, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/xml.micro", size: 281, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1955,7 +1955,7 @@ func runtimeSyntaxXresourcesMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/xresources.micro", size: 297, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/xresources.micro", size: 297, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1975,7 +1975,7 @@ func runtimeSyntaxYamlMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/yaml.micro", size: 542, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/yaml.micro", size: 542, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1995,7 +1995,7 @@ func runtimeSyntaxYumMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/yum.micro", size: 276, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/yum.micro", size: 276, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2015,7 +2015,7 @@ func runtimeSyntaxZshMicro() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "runtime/syntax/zsh.micro", size: 1957, mode: os.FileMode(420), modTime: time.Unix(1461712799, 0)} + info := bindataFileInfo{name: "runtime/syntax/zsh.micro", size: 1957, mode: os.FileMode(420), modTime: time.Unix(1464446433, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/cmd/micro/statusline.go b/cmd/micro/statusline.go index 10ec0819..c08c147a 100644 --- a/cmd/micro/statusline.go +++ b/cmd/micro/statusline.go @@ -41,7 +41,7 @@ func (sline *Statusline) Display() { file += " " + sline.view.Buf.FileType rightText := "Ctrl-g for help " - if helpOpen { + if sline.view.helpOpen { rightText = "Ctrl-g to close help " } diff --git a/cmd/micro/view.go b/cmd/micro/view.go index a95ac6c4..f3f38c90 100644 --- a/cmd/micro/view.go +++ b/cmd/micro/view.go @@ -37,8 +37,17 @@ type View struct { // Holds the list of gutter messages messages map[string][]GutterMessage + // Is the help text opened in this view + helpOpen bool + + // Is this view modifiable? + Modifiable bool + // The buffer Buf *Buffer + // This is the buffer that was last opened + // This is used to open help, and then go back to the previously opened buffer + lastBuffer *Buffer // The statusline sline Statusline diff --git a/runtime/help/help.md b/runtime/help/help.md index 3458f3ed..a2abc842 100644 --- a/runtime/help/help.md +++ b/runtime/help/help.md @@ -21,15 +21,10 @@ You can move the cursor around with the arrow keys and mouse. These are the default keybindings, along with their actions. -#### Editor bindings - * Ctrl-q: Quit * Ctrl-e: Execute a command * Ctrl-g: Toggle help text * Ctrl-b: Run a shell command - -#### Buffer bindings - * Ctrl-s: Save * Ctrl-o: Open file * Ctrl-z: Undo @@ -55,7 +50,7 @@ ctrl up and down move the cursor the start and end of the buffer. You can hold shift with all of these movement actions to select while moving. -The buffer bindings may be rebound using the `~/.config/micro/bindings.json` +The bindings may be rebound using the `~/.config/micro/bindings.json` file. Each key is bound to an action. For example, to bind `Ctrl-y` to undo and `Ctrl-z` to redo, you could put the @@ -72,52 +67,64 @@ Here are the defaults: ```json { - "Up": "CursorUp", - "Down": "CursorDown", - "Right": "CursorRight", - "Left": "CursorLeft", - "ShiftUp": "SelectUp", - "ShiftDown": "SelectDown", - "ShiftLeft": "SelectLeft", - "ShiftRight": "SelectRight", - "AltLeft": "WordLeft", - "AltRight": "WordRight", - "AltShiftRight": "SelectWordRight", - "AltShiftLeft": "SelectWordLeft", - "CtrlLeft": "StartOfLine", - "CtrlRight": "EndOfLine", - "CtrlShiftLeft": "SelectToStartOfLine", - "CtrlShiftRight": "SelectToEndOfLine", - "CtrlUp": "CursorStart", - "CtrlDown": "CursorEnd", - "CtrlShiftUp": "SelectToStart", - "CtrlShiftDown": "SelectToEnd", - "Enter": "InsertEnter", - "Space": "InsertSpace", - "Backspace": "Backspace", - "Backspace2": "Backspace", - "Tab": "InsertTab", - "CtrlO": "OpenFile", - "CtrlS": "Save", - "CtrlF": "Find", - "CtrlN": "FindNext", - "CtrlP": "FindPrevious", - "CtrlZ": "Undo", - "CtrlY": "Redo", - "CtrlC": "Copy", - "CtrlX": "Cut", - "CtrlK": "CutLine", - "CtrlD": "DuplicateLine", - "CtrlV": "Paste", - "CtrlA": "SelectAll", - "Home": "Start", - "End": "End", - "PgUp": "PageUp", - "PgDn": "PageDown", - "CtrlU": "HalfPageUp", - "CtrlD": "HalfPageDown", - "CtrlR": "ToggleRuler", - "Delete": "Delete" + "Up": "CursorUp", + "Down": "CursorDown", + "Right": "CursorRight", + "Left": "CursorLeft", + "ShiftUp": "SelectUp", + "ShiftDown": "SelectDown", + "ShiftLeft": "SelectLeft", + "ShiftRight": "SelectRight", + "AltLeft": "WordLeft", + "AltRight": "WordRight", + "AltShiftRight": "SelectWordRight", + "AltShiftLeft": "SelectWordLeft", + "CtrlLeft": "StartOfLine", + "CtrlRight": "EndOfLine", + "CtrlShiftLeft": "SelectToStartOfLine", + "CtrlShiftRight": "SelectToEndOfLine", + "CtrlUp": "CursorStart", + "CtrlDown": "CursorEnd", + "CtrlShiftUp": "SelectToStart", + "CtrlShiftDown": "SelectToEnd", + "Enter": "InsertEnter", + "Space": "InsertSpace", + "Backspace": "Backspace", + "Backspace2": "Backspace", + "Tab": "InsertTab", + "CtrlO": "OpenFile", + "CtrlS": "Save", + "CtrlF": "Find", + "CtrlN": "FindNext", + "CtrlP": "FindPrevious", + "CtrlZ": "Undo", + "CtrlY": "Redo", + "CtrlC": "Copy", + "CtrlX": "Cut", + "CtrlK": "CutLine", + "CtrlD": "DuplicateLine", + "CtrlV": "Paste", + "CtrlA": "SelectAll", + "Home": "Start", + "End": "End", + "PgUp": "PageUp", + "PgDn": "PageDown", + "CtrlG": "ToggleHelp", + "CtrlR": "ToggleRuler", + "CtrlL": "JumpLine", + "Delete": "Delete", + "Esc": "ClearStatus", + "CtrlB": "ShellMode", + "CtrlQ": "Quit", + "CtrlE": "CommandMode", + + // Emacs-style keybindings + "Alt-f": "WordRight", + "Alt-b": "WordLeft", + "Alt-a": "StartOfLine", + "Alt-e": "EndOfLine", + "Alt-p": "CursorUp", + "Alt-n": "CursorDown", } ``` @@ -211,7 +218,7 @@ Here are the options that you can set: default value: `3` -* `scrollspeed`: amount of lines to scroll +* `scrollspeed`: amount of lines to scroll for one scroll event default value: `2` diff --git a/runtime/plugins/go/go.lua b/runtime/plugins/go/go.lua index 58d3ddf2..6c545f51 100644 --- a/runtime/plugins/go/go.lua +++ b/runtime/plugins/go/go.lua @@ -6,25 +6,25 @@ if GetOption("gofmt") == nil then end function go_onSave() - if view.Buf.FileType == "Go" then + if views[mainView+1].Buf.FileType == "Go" then if GetOption("goimports") then go_goimports() elseif GetOption("gofmt") then go_gofmt() end - view:ReOpen() + views[mainView+1]:ReOpen() end end function go_gofmt() - local handle = io.popen("gofmt -w " .. view.Buf.Path) + local handle = io.popen("gofmt -w " .. views[mainView+1].Buf.Path) local result = handle:read("*a") handle:close() end function go_goimports() - local handle = io.popen("goimports -w " .. view.Buf.Path) + local handle = io.popen("goimports -w " .. views[mainView+1].Buf.Path) local result = go_split(handle:read("*a"), ":") handle:close() end diff --git a/runtime/plugins/linter/linter.lua b/runtime/plugins/linter/linter.lua index 090603c1..9767da5d 100644 --- a/runtime/plugins/linter/linter.lua +++ b/runtime/plugins/linter/linter.lua @@ -4,15 +4,15 @@ end function linter_onSave() if GetOption("linter") then - local ft = view.Buf.FileType - local file = view.Buf.Path + local ft = views[mainView+1].Buf.FileType + local file = views[mainView+1].Buf.Path local devnull = "/dev/null" if OS == "windows" then devnull = "NUL" end if ft == "Go" then linter_lint("gobuild", "go build -o " .. devnull, "%f:%l: %m") - linter_lint("golint", "golint " .. view.Buf.Path, "%f:%l:%d+: %m") + linter_lint("golint", "golint " .. views[mainView+1].Buf.Path, "%f:%l:%d+: %m") elseif ft == "Lua" then linter_lint("luacheck", "luacheck --no-color " .. file, "%f:%l:%d+: %m") elseif ft == "Python" then @@ -27,12 +27,12 @@ function linter_onSave() linter_lint("jshint", "jshint " .. file, "%f: line %l,.+, %m") end else - view:ClearAllGutterMessages() + views[mainView+1]:ClearAllGutterMessages() end end function linter_lint(linter, cmd, errorformat) - view:ClearGutterMessages(linter) + views[mainView+1]:ClearGutterMessages(linter) local handle = io.popen("(" .. cmd .. ")" .. " 2>&1") local lines = linter_split(handle:read("*a"), "\n") @@ -44,8 +44,8 @@ function linter_lint(linter, cmd, errorformat) line = line:match("^%s*(.+)%s*$") if string.find(line, regex) then local file, line, msg = string.match(line, regex) - if linter_basename(view.Buf.Path) == linter_basename(file) then - view:GutterMessage(linter, tonumber(line), msg, 2) + if linter_basename(views[mainView+1].Buf.Path) == linter_basename(file) then + views[mainView+1]:GutterMessage(linter, tonumber(line), msg, 2) end end end