func onInit() { l := py.NewLock() defer l.Unlock() m, err := py.Import("sublime_plugin") if err != nil { panic(err) } sys, err := py.Import("sys") if err != nil { log.Debug(err) } else { defer sys.Decref() } if watcher, err = watch.NewWatcher(); err != nil { log.Errorf("Couldn't create watcher: %s", err) } // TODO: add all plugins after supporting all commands // plugins := packages.ScanPlugins(backend.LIME_PACKAGES_PATH, ".py") // for _, p := range plugins { // newPlugin(p, m) // } newPlugin(packages.NewPlugin(path.Join(backend.LIME_PACKAGES_PATH, "Vintageous"), ".py"), m) go watcher.Observe() }
func GetEditor() *Editor { edl.Lock() defer edl.Unlock() if ed == nil { ed = &Editor{ cmdHandler: commandHandler{ ApplicationCommands: make(appcmd), TextCommands: make(textcmd), WindowCommands: make(wndcmd), verbose: true, }, frontend: &DummyFrontend{}, console: &View{ buffer: NewBuffer(), scratch: true, }, keyInput: make(chan keys.KeyPress, 32), } var err error if ed.Watcher, err = watch.NewWatcher(); err != nil { log.Error("Couldn't create watcher: %s", err) } ed.console.Settings().Set("is_widget", true) ed.defaultSettings = new(HasSettings) ed.platformSettings = new(HasSettings) ed.Settings() // Just to initialize it ed.defaultBindings = new(keys.HasKeyBindings) ed.platformBindings = new(keys.HasKeyBindings) ed.userBindings = new(keys.HasKeyBindings) log.AddFilter("console", log.DEBUG, log.NewLogWriter(ed.handleLog)) go ed.inputthread() go ed.Observe() } return ed }