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.Settings() // Just to initialize it log.AddFilter("console", log.DEBUG, log.NewLogWriter(ed.handleLog)) go ed.inputthread() go ed.Observe() } return ed }
func main() { flag.Parse() log.AddFilter("file", log.FINEST, log.NewFileLogWriter("debug.log", *rotateLog)) defer func() { py.NewLock() py.Finalize() }() if err := termbox.Init(); err != nil { log.Close(err) return } defer func() { termbox.Close() log.Debug(util.Prof) if err := recover(); err != nil { log.Critical(err) panic(err) } }() t := createFrontend() go t.renderthread() t.loop() }
func main() { flag.Parse() log.AddFilter("file", log.FINEST, log.NewConsoleLogWriter()) defer func() { py.NewLock() py.Finalize() }() var t tbfe t.dorender = make(chan bool, render_chan_len) t.layout = make(map[*backend.View]layout) t.loop() }
func main() { // Need to lock the OS thread as OSX GUI requires GUI stuff to run in the main thread runtime.LockOSThread() log.AddFilter("file", log.FINEST, log.NewConsoleLogWriter()) defer func() { py.NewLock() py.Finalize() }() t = &qmlfrontend{windows: make(map[*backend.Window]*frontendWindow)} go t.qmlBatchLoop() qml.Run(t.loop) }