本文整理汇总了Golang中github.com/limetext/lime/backend/sublime.Init函数的典型用法代码示例。如果您正苦于以下问题:Golang Init函数的具体用法?Golang Init怎么用?Golang Init使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Init函数的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: createFrontend
// Creates and initializes the frontend.
func createFrontend() *tbfe {
var t tbfe
t.dorender = make(chan bool, render_chan_len)
t.shutdown = make(chan bool, 2)
t.layout = make(map[*backend.View]layout)
t.editor = t.setupEditor()
t.console = t.editor.Console()
t.currentWindow = t.editor.NewWindow()
// Assuming that all extra arguments are files
if files := flag.Args(); len(files) > 0 {
for _, file := range files {
t.currentView = createNewView(file, t.currentWindow)
}
} else {
t.currentView = t.currentWindow.NewFile()
}
t.console.Buffer().AddCallback(t.scroll)
t.setupCallbacks(t.currentView)
path := path.Join("..", "..", "3rdparty", "bundles", "TextMate-Themes", "Monokai.tmTheme")
if sc, err := textmate.LoadTheme(path); err != nil {
log.Error(err)
} else {
scheme = sc
}
setColorMode()
setSchemeSettings()
w, h := termbox.Size()
t.handleResize(h, w, true)
// These might take a while
t.editor.Init()
go sublime.Init()
return &t
}
开发者ID:ericcapricorn,项目名称:lime,代码行数:42,代码来源:main.go
示例2: loop
func (t *tbfe) loop() {
backend.OnNew.Add(func(v *backend.View) {
v.Settings().AddOnChange("lime.frontend.html.render", func(name string) { t.dirty = true })
})
backend.OnModified.Add(func(v *backend.View) {
t.dirty = true
})
backend.OnSelectionModified.Add(func(v *backend.View) {
t.dirty = true
})
ed := backend.GetEditor()
ed.SetFrontend(t)
ed.LogInput(false)
ed.LogCommands(false)
c := ed.Console()
if sc, err := textmate.LoadTheme("../../3rdparty/bundles/TextMate-Themes/GlitterBomb.tmTheme"); err != nil {
log4go.Error(err)
} else {
scheme = sc
}
defer func() {
fmt.Println(util.Prof)
}()
w := ed.NewWindow()
v := w.OpenFile("main.go", 0)
v.Settings().Set("trace", true)
v.Settings().Set("syntax", "../../3rdparty/bundles/go.tmbundle/Syntaxes/Go.tmLanguage")
c.Buffer().AddCallback(t.scroll)
sel := v.Sel()
sel.Clear()
// end := v.Buffer().Size() - 2
sel.Add(Region{0, 0})
// sel.Add(Region{end - 22, end - 22})
// sel.Add(Region{end - 16, end - 20})
// sel.Add(Region{end - 13, end - 10})
{
w, h := 800, 600
t.lock.Lock()
t.layout[v] = layout{0, 0, w, h - console_height - 1, Region{}, 0}
t.layout[c] = layout{0, h - console_height + 1, w, console_height - 5, Region{}, 0}
t.lock.Unlock()
t.Show(v, Region{1, 1})
}
t.Show(v, Region{100, 100})
t.Show(v, Region{1, 1})
go func() {
ed.Init()
sublime.Init()
}()
log4go.Debug("serving")
http.HandleFunc("/key", t.key)
http.HandleFunc("/", t.ServeHTTP)
http.HandleFunc("/view", t.view)
if err := http.ListenAndServe("localhost:8080", nil); err != nil {
log4go.Error("Error serving: %s", err)
}
log4go.Debug("Done")
}
开发者ID:Unverified,项目名称:lime,代码行数:64,代码来源:main.go
示例3: loop
//.........这里部分代码省略.........
}
backend.OnNewWindow.Add(func(w *backend.Window) {
fw := &frontendWindow{bw: w}
t.windows[w] = fw
if component != nil {
fw.launch(&wg, component)
}
})
// TODO: should be done backend side
if sc, err := textmate.LoadTheme("../../3rdparty/bundles/TextMate-Themes/Monokai.tmTheme"); err != nil {
log4go.Error(err)
} else {
scheme = sc
}
defer func() {
fmt.Println(util.Prof)
}()
w := ed.NewWindow()
v := w.OpenFile("main.go", 0)
// TODO: should be done backend side
v.Settings().Set("syntax", "../../3rdparty/bundles/go.tmbundle/Syntaxes/Go.tmLanguage")
v.Sel().Clear()
v.Sel().Add(Region{0, 0})
v = w.OpenFile("../../backend/editor.go", 0)
// TODO: should be done backend side
v.Settings().Set("syntax", "../../3rdparty/bundles/go.tmbundle/Syntaxes/Go.tmLanguage")
v.Sel().Clear()
v.Sel().Add(Region{0, 0})
ed.Init()
sublime.Init()
watch, err := fsnotify.NewWatcher()
if err != nil {
log4go.Error("Unable to create file watcher: %s", err)
return
}
defer watch.Close()
watch.Watch(".")
defer watch.RemoveWatch(".")
reloadRequested := false
go func() {
for {
select {
case ev := <-watch.Event:
if ev != nil && strings.HasSuffix(ev.Name, ".qml") && ev.IsModify() && !ev.IsAttrib() {
reloadRequested = true
// Close all open windows to de-reference all
// qml objects
for _, v := range t.windows {
if v.window != nil {
v.window.Hide()
v.window.Destroy()
v.window = nil
}
}
}
}
}
}()
开发者ID:riginding,项目名称:lime,代码行数:67,代码来源:main.go
示例4: loop
func (t *tbfe) loop() {
var (
ed = t.setupEditor()
c = ed.Console()
w = ed.NewWindow()
v *backend.View
)
// Assuming that all extra arguments are files
if files := flag.Args(); len(files) > 0 {
for _, file := range files {
v = createNewView(file, w)
}
} else {
v = w.NewFile()
}
c.Buffer().AddCallback(t.scroll)
t.setupCallbacks(v)
path := "../../3rdparty/bundles/TextMate-Themes/Monokai.tmTheme"
if sc, err := textmate.LoadTheme(path); err != nil {
log4go.Error(err)
return
} else {
scheme = sc
}
setColorMode()
setSchemeSettings()
// We start the renderThread here, after we have done our setup of termbox.
// That way, we do not clash with our output.
go t.renderthread()
evchan := make(chan termbox.Event, 32)
defer func() {
close(evchan)
}()
go func() {
for {
evchan <- termbox.PollEvent()
}
}()
{
w, h := termbox.Size()
t.lock.Lock()
if *showConsole {
t.layout[v] = layout{0, 0, w, h - *consoleHeight - 4, Region{}, 0}
t.layout[c] = layout{0, h - *consoleHeight - 2, w, *consoleHeight - 1, Region{}, 0}
} else {
t.layout[v] = layout{0, 0, w, h - 3, Region{}, 0}
}
t.lock.Unlock()
t.Show(v, Region{1, 1})
}
t.Show(v, Region{100, 100})
t.Show(v, Region{1, 1})
go func() {
ed.Init()
sublime.Init()
}()
for {
p := util.Prof.Enter("mainloop")
blink_phase := time.Second
if p, ok := ed.Settings().Get("caret_blink_phase", 1.0).(float64); ok {
blink_phase = time.Duration(float64(time.Second) * p)
}
// Divided by two since we're only doing a simple toggle blink
timer := time.NewTimer(blink_phase / 2)
select {
case ev := <-evchan:
mp := util.Prof.Enter("evchan")
limit := 3
loop:
switch ev.Type {
case termbox.EventError:
log4go.Debug("error occured")
return
case termbox.EventResize:
// We have to resize our layouts...
// There is currently duplicate code for calculating the layout:
// during initialization (above), and here. Not nice
if *showConsole {
view_layout := t.layout[v]
view_layout.height = ev.Height - *consoleHeight - 4
view_layout.width = ev.Width
console_layout := t.layout[c]
console_layout.y = ev.Height - *consoleHeight - 2
console_layout.width = ev.Width
t.layout[v] = view_layout
t.layout[c] = console_layout
//.........这里部分代码省略.........
开发者ID:ochz,项目名称:lime,代码行数:101,代码来源:main.go
示例5: loop
func (t *tbfe) loop() {
qml.Init(nil)
engine := qml.NewEngine()
engine.Context().SetVar("lines", t)
engine.Context().SetVar("frontend", t)
engine.Context().SetVar("editor", backend.GetEditor())
backend.OnNew.Add(func(v *backend.View) {
fv := &frontendView{bv: v}
v.Buffer().AddCallback(fv.bufferChanged)
v.Settings().AddOnChange("blah", func(name string) {
if name == "lime.syntax.updated" {
// force redraw, as the syntax regions might have changed...
for i := range fv.FormattedLine {
fv.formatLine(i)
}
}
})
t.views[v] = fv
t.Len = len(t.views)
qml.Changed(t, &t.Len)
})
ed := backend.GetEditor()
ed.SetFrontend(t)
ed.LogInput(false)
ed.LogCommands(false)
c := ed.Console()
t.Console = &frontendView{bv: c}
c.Buffer().AddCallback(t.Console.bufferChanged)
if sc, err := textmate.LoadTheme("../../3rdparty/bundles/TextMate-Themes/GlitterBomb.tmTheme"); err != nil {
log4go.Error(err)
} else {
scheme = sc
}
defer func() {
fmt.Println(util.Prof)
}()
w := ed.NewWindow()
v := w.OpenFile("main.go", 0)
v.Settings().Set("trace", true)
v.Settings().Set("syntax", "../../3rdparty/bundles/go.tmbundle/Syntaxes/Go.tmLanguage")
c.Buffer().AddCallback(t.scroll)
sel := v.Sel()
sel.Clear()
sel.Add(Region{0, 0})
{
w, h := 800, 600
t.lock.Lock()
t.layout[v] = layout{0, 0, w, h - console_height - 1, Region{}, 0}
t.layout[c] = layout{0, h - console_height + 1, w, console_height - 5, Region{}, 0}
t.lock.Unlock()
t.Show(v, Region{1, 1})
}
t.Show(v, Region{100, 100})
t.Show(v, Region{1, 1})
// t.Len, _ = v.Buffer().RowCol(v.Buffer().Size())
ed.Init()
sublime.Init()
component, err := engine.LoadFile("main.qml")
if err != nil {
log4go.Exit(err)
}
window := component.CreateWindow(nil)
window.Show()
log4go.Debug("Done")
window.Wait()
}
开发者ID:uni3orns,项目名称:lime,代码行数:79,代码来源:main.go
示例6: loop
func (t *qmlfrontend) loop() (err error) {
backend.OnNew.Add(t.onNew)
backend.OnClose.Add(t.onClose)
backend.OnLoad.Add(t.onLoad)
ed := backend.GetEditor()
ed.Init()
go sublime.Init()
ed.SetFrontend(t)
ed.LogInput(false)
ed.LogCommands(false)
c := ed.Console()
t.Console = &frontendView{bv: c}
c.Buffer().AddObserver(t.Console)
c.Buffer().AddObserver(t)
var (
engine *qml.Engine
component qml.Object
// WaitGroup keeping track of open windows
wg sync.WaitGroup
)
// create and setup a new engine, destroying
// the old one if one exists.
//
// This is needed to re-load qml files to get
// the new file contents from disc as otherwise
// the old file would still be what is referenced.
newEngine := func() (err error) {
if engine != nil {
log.Debug("calling destroy")
// TODO(.): calling this appears to make the editor *very* crash-prone, just let it leak for now
// engine.Destroy()
engine = nil
}
log.Debug("calling newEngine")
engine = qml.NewEngine()
log.Debug("setvar frontend")
engine.Context().SetVar("frontend", t)
log.Debug("setvar editor")
engine.Context().SetVar("editor", backend.GetEditor())
log.Debug("loadfile")
component, err = engine.LoadFile(qmlMainFile)
if err != nil {
return err
}
limeViewComponent, err = engine.LoadFile(qmlViewFile)
return
}
if err := newEngine(); err != nil {
log.Error(err)
}
backend.OnNewWindow.Add(func(w *backend.Window) {
fw := &frontendWindow{bw: w}
t.windows[w] = fw
if component != nil {
fw.launch(&wg, component)
}
})
// TODO: should be done backend side
if sc, err := textmate.LoadTheme("../../packages/themes/TextMate-Themes/Monokai.tmTheme"); err != nil {
log.Error(err)
} else {
scheme = sc
}
defer func() {
fmt.Println(util.Prof)
}()
w := ed.NewWindow()
v := w.OpenFile("main.go", 0)
// TODO: should be done backend side
v.Settings().Set("syntax", "../../packages/go.tmbundle/Syntaxes/Go.tmLanguage")
v = w.OpenFile("../../backend/editor.go", 0)
// TODO: should be done backend side
v.Settings().Set("syntax", "../../packages/go.tmbundle/Syntaxes/Go.tmLanguage")
watch, err := fsnotify.NewWatcher()
if err != nil {
log.Errorf("Unable to create file watcher: %s", err)
return
}
defer watch.Close()
watch.Watch(".")
defer watch.RemoveWatch(".")
reloadRequested := false
go func() {
for {
select {
case ev := <-watch.Event:
if ev != nil && strings.HasSuffix(ev.Name, ".qml") && ev.IsModify() && !ev.IsAttrib() {
reloadRequested = true
// Close all open windows to de-reference all
//.........这里部分代码省略.........
开发者ID:rokite,项目名称:lime,代码行数:101,代码来源:main.go
示例7: loop
func (t *tbfe) loop() {
var (
ed = t.setupEditor()
c = ed.Console()
w = ed.NewWindow()
v = createNewView("main.go", w)
sel = v.Sel()
)
t.settings = getSettings(v)
c.Buffer().AddCallback(t.scroll)
t.setupCallbacks(v)
loadTextMateScheme()
setColorMode()
setSchemeSettings()
sel.Clear()
sel.Add(Region{0, 0})
evchan := make(chan termbox.Event, 32)
defer func() {
close(evchan)
fmt.Println(util.Prof)
}()
go func() {
for {
evchan <- termbox.PollEvent()
}
}()
{
w, h := termbox.Size()
t.lock.Lock()
t.layout[v] = layout{0, 0, w, h - console_height - 1, Region{}, 0}
t.layout[c] = layout{0, h - console_height + 1, w, console_height - 5, Region{}, 0}
t.lock.Unlock()
t.Show(v, Region{1, 1})
}
t.Show(v, Region{100, 100})
t.Show(v, Region{1, 1})
go func() {
ed.Init()
sublime.Init()
}()
for {
p := util.Prof.Enter("mainloop")
blink_phase := time.Second
if p, ok := ed.Settings().Get("caret_blink_phase", 1.0).(float64); ok {
blink_phase = time.Duration(float64(time.Second) * p)
}
// Divided by two since we're only doing a simple toggle blink
timer := time.NewTimer(blink_phase / 2)
select {
case ev := <-evchan:
mp := util.Prof.Enter("evchan")
limit := 3
loop:
switch ev.Type {
case termbox.EventError:
log4go.Debug("error occured")
return
case termbox.EventKey:
var kp backend.KeyPress
if ev.Ch != 0 {
kp.Key = backend.Key(ev.Ch)
} else if v2, ok := lut[ev.Key]; ok {
kp = v2
} else {
break
}
if ev.Key == termbox.KeyCtrlQ {
return
}
ed.HandleInput(kp)
blink = false
}
if len(evchan) > 0 {
limit--
ev = <-evchan
goto loop
}
mp.Exit()
case <-timer.C:
// TODO(q): Shouldn't redraw if blink is disabled...
blink = !blink
t.render()
}
timer.Stop()
p.Exit()
}
}
开发者ID:royalwang,项目名称:lime,代码行数:100,代码来源:main.go
示例8: loop
func (t *tbfe) loop() {
var (
ed = t.setupEditor()
c = ed.Console()
w = ed.NewWindow()
v *backend.View
)
// Assuming that all extra arguments are files
if files := flag.Args(); len(files) > 0 {
for _, file := range files {
v = createNewView(file, w)
}
} else {
v = w.NewFile()
}
t.settings = getSettings(v)
c.Buffer().AddCallback(t.scroll)
t.setupCallbacks(v)
path := "../../3rdparty/bundles/TextMate-Themes/GlitterBomb.tmTheme"
if sc, err := textmate.LoadTheme(path); err != nil {
log4go.Error(err)
return
} else {
scheme = sc
}
setColorMode()
setSchemeSettings()
evchan := make(chan termbox.Event, 32)
defer func() {
close(evchan)
fmt.Println(util.Prof)
}()
go func() {
for {
evchan <- termbox.PollEvent()
}
}()
{
w, h := termbox.Size()
t.lock.Lock()
if *showConsole {
t.layout[v] = layout{0, 0, w, h - *consoleHeight - 4, Region{}, 0}
t.layout[c] = layout{0, h - *consoleHeight - 2, w, *consoleHeight - 1, Region{}, 0}
} else {
t.layout[v] = layout{0, 0, w, h - 3, Region{}, 0}
}
t.lock.Unlock()
t.Show(v, Region{1, 1})
}
t.Show(v, Region{100, 100})
t.Show(v, Region{1, 1})
go func() {
ed.Init()
sublime.Init()
}()
for {
p := util.Prof.Enter("mainloop")
blink_phase := time.Second
if p, ok := ed.Settings().Get("caret_blink_phase", 1.0).(float64); ok {
blink_phase = time.Duration(float64(time.Second) * p)
}
// Divided by two since we're only doing a simple toggle blink
timer := time.NewTimer(blink_phase / 2)
select {
case ev := <-evchan:
mp := util.Prof.Enter("evchan")
limit := 3
loop:
switch ev.Type {
case termbox.EventError:
log4go.Debug("error occured")
return
case termbox.EventKey:
var kp backend.KeyPress
if ev.Ch != 0 {
kp.Key = backend.Key(ev.Ch)
} else if v2, ok := lut[ev.Key]; ok {
kp = v2
} else {
break
}
if ev.Key == termbox.KeyCtrlQ {
return
}
ed.HandleInput(kp)
blink = false
//.........这里部分代码省略.........
开发者ID:nflick,项目名称:lime,代码行数:101,代码来源:main.go
示例9: loop
func (t *tbfe) loop() {
qml.Init(nil)
engine := qml.NewEngine()
engine.Context().SetVar("lines", t)
engine.Context().SetVar("frontend", t)
engine.Context().SetVar("editor", backend.GetEditor())
backend.OnNew.Add(func(v *backend.View) {
v.Settings().AddOnChange("lime.frontend.html.render", func(name string) { t.dirty = true })
})
backend.OnModified.Add(func(v *backend.View) {
t.dirty = true
})
backend.OnSelectionModified.Add(func(v *backend.View) {
t.dirty = true
})
ed := backend.GetEditor()
ed.SetFrontend(t)
ed.LogInput(false)
ed.LogCommands(false)
c := ed.Console()
if sc, err := textmate.LoadTheme("../../3rdparty/bundles/TextMate-Themes/GlitterBomb.tmTheme"); err != nil {
log4go.Error(err)
} else {
scheme = sc
}
defer func() {
fmt.Println(util.Prof)
}()
w := ed.NewWindow()
v := w.OpenFile("main.go", 0)
v.Settings().Set("trace", true)
v.Settings().Set("syntax", "../../3rdparty/bundles/go.tmbundle/Syntaxes/Go.tmLanguage")
c.Buffer().AddCallback(t.scroll)
sel := v.Sel()
sel.Clear()
sel.Add(Region{0, 0})
{
w, h := 800, 600
t.lock.Lock()
t.layout[v] = layout{0, 0, w, h - console_height - 1, Region{}, 0}
t.layout[c] = layout{0, h - console_height + 1, w, console_height - 5, Region{}, 0}
t.lock.Unlock()
t.Show(v, Region{1, 1})
}
t.Show(v, Region{100, 100})
t.Show(v, Region{1, 1})
t.Len, _ = v.Buffer().RowCol(v.Buffer().Size())
ed.Init()
sublime.Init()
component, err := engine.LoadFile("main.qml")
if err != nil {
log4go.Exit(err)
}
window := component.CreateWindow(nil)
window.Show()
qml.Changed(t, &t.Len)
log4go.Debug("Done")
window.Wait()
}
开发者ID:rzh,项目名称:lime,代码行数:69,代码来源:main.go
注:本文中的github.com/limetext/lime/backend/sublime.Init函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论