diff --git a/cmd/pad/impl_android.go b/cmd/pad/impl_android.go index 6dbbef6..9221217 100644 --- a/cmd/pad/impl_android.go +++ b/cmd/pad/impl_android.go @@ -13,7 +13,6 @@ import "C" import ( "errors" "fmt" - "log" "runtime" "unsafe" @@ -34,7 +33,6 @@ func impl_start() { } func handleEvent(e event.Event) { switch e := e.(type) { case app.AndroidViewEvent: - log.Print("ViewEvent") theJVM = (*C.JavaVM)(unsafe.Pointer(app.JavaVM())) RunInJVM(func(env *JNIEnv) { C.registerFragment(env, (C.jobject)(unsafe.Pointer(e.View))) @@ -66,7 +64,6 @@ func RunInJVM(f func(env *C.JNIEnv)) { } func OpenFile(path string) { - log.Printf("OpenFile(%s)",path) var env *C.JNIEnv var detach bool if res := C.GetEnv(theJVM, &env, C.JNI_VERSION_1_6); res != C.JNI_OK { @@ -85,7 +82,6 @@ func OpenFile(path string) { }() } cpath := C.CString(path) - log.Printf("OpenFile: calling open_file_in_termux",path) C.open_file_in_termux(env, cpath) C.free(unsafe.Pointer(cpath)) } diff --git a/cmd/pad/main.go b/cmd/pad/main.go index 27dd1e7..6e063d7 100644 --- a/cmd/pad/main.go +++ b/cmd/pad/main.go @@ -36,7 +36,6 @@ func main() { } func run(w *app.Window) error { - log.Printf("run: starting") var ops op.Ops shaper := text.NewShaper(text.WithCollection(gofont.Collection())) @@ -96,9 +95,7 @@ func run(w *app.Window) error { var mu sync.Mutex var frame editor.Frame - log.Printf("run: starting frameReceiver") go frameReceiver(w, &mu, &frame, logic.FrameChan()) - log.Printf("run: starting logic.Run") go logic.Run() for { @@ -159,10 +156,8 @@ func run(w *app.Window) error { if !ok { break } - //log.Printf("found an event: %T", evt) switch k := evt.(type) { case key.Event: - //log.Printf("key event: %v state=%v", k.Name, k.State) if k.State == key.Press { events = append(events, ui.InputEvent{ Handler: reg.Handler, @@ -170,13 +165,11 @@ func run(w *app.Window) error { }) } case key.EditEvent: - //log.Printf("edit event text: %q", k.Text) events = append(events, ui.InputEvent{ Handler: reg.Handler, Data: k, }) case key.SnippetEvent: - //log.Printf("snippet event: %v", k) // Handle snippet event if necessary, or ignore default: log.Printf("unexpected event type: %T", k) @@ -197,17 +190,14 @@ func run(w *app.Window) error { } logic.LayoutChan() <- glyphLayout default: - //log.Printf("pad: default event") handleEvent(e) } } } func frameReceiver(w *app.Window, mu *sync.Mutex, frame *editor.Frame, frameChan <-chan editor.Frame) { - log.Printf("frameReceiver: loop starting") for { f := <-frameChan - //log.Printf("frameReceiver: received frame") mu.Lock() *frame = f w.Invalidate() diff --git a/internal/browser/handlers.go b/internal/browser/handlers.go index 538521b..58d0bbc 100644 --- a/internal/browser/handlers.go +++ b/internal/browser/handlers.go @@ -1,9 +1,8 @@ package browser import ( - "fmt" - "path/filepath" "pad/internal/ui" + "path/filepath" ) // HandleScroll updates the browser scroll index by the given delta (in entries). @@ -103,13 +102,8 @@ func HandleBrowserTap(bm *BrowserManager, s *BrowserState, index int) { } else { // Open file s.SelectedIndex = entryIndex - fmt.Printf("HandleBrowserTap: Opening file %s\n", entry.Path) if ui.OpenFile != nil { ui.OpenFile(entry.Path) } - // Dispatch ReadFileTask to the worker pool - // task := pool.NewReadFileTask(entry.Path, bm.fs) - // fmt.Printf("HandleBrowserTap: Dispatching ReadFileTask for %s\n", entry.Path) - // bm.workerPool.Dispatch(task) } } diff --git a/internal/browser/manager.go b/internal/browser/manager.go index d8f341b..7c46438 100644 --- a/internal/browser/manager.go +++ b/internal/browser/manager.go @@ -26,8 +26,6 @@ func NewBrowserManager(state *BrowserState, wp *pool.WorkerPool, fs pool.FileSys } func (bm *BrowserManager) NavigateTo(dirPath string) { - fmt.Printf("NavigateTo: dirPath=%s, state.CurrentPath=%s\n", dirPath, bm.state.CurrentPath) - // Save the previous path so we can restore it on navigation failure. bm.state.History = append(bm.state.History, bm.state.CurrentPath) @@ -55,11 +53,8 @@ func (bm *BrowserManager) OnScroll() { } } - fmt.Printf("OnScroll: minPage=%d, maxPage=%d, pagesToLoad=%v\n", minPage, maxPage, pagesToLoad) - // Dispatch LoadPagesTask for unloaded pages if len(pagesToLoad) > 0 { - fmt.Printf("OnScroll: Dispatching LoadPagesTask for pages %v\n", pagesToLoad) task := pool.NewLoadPagesTask(bm.state.CurrentPath, pagesToLoad, bm.fs) bm.workerPool.Dispatch(task) } @@ -95,10 +90,10 @@ func (bm *BrowserManager) handleBuildIndexSuccess(result pool.Result) { // In the mock implementation, BuildIndexTask returns []types.DirEntry. // We need to convert these to browser.Entry and build the SortIndex. entries := result.Data.([]types.DirEntry) - + var browserEntries []Entry // Add ".." entry if not at root - // We check against "/" specifically. "." is just a relative path for current dir, + // We check against "/" specifically. "." is just a relative path for current dir, // which still has a parent. if bm.state.CurrentPath != "/" && bm.state.CurrentPath != "" { browserEntries = append(browserEntries, Entry{ @@ -109,10 +104,9 @@ func (bm *BrowserManager) handleBuildIndexSuccess(result pool.Result) { IsDir: true, }) } - + for _, e := range entries { info, _ := e.Info() - fmt.Printf("Adding entry: %s\n", e.Name()) browserEntries = append(browserEntries, Entry{ Path: filepath.Join(bm.state.CurrentPath, e.Name()), Name: e.Name(), @@ -139,7 +133,6 @@ func (bm *BrowserManager) handleBuildIndexSuccess(result pool.Result) { } bm.state.TotalEntries = len(browserEntries) - fmt.Printf("handleBuildIndexSuccess: TotalEntries set to %d\n", bm.state.TotalEntries) // Trigger initial page load bm.OnScroll() diff --git a/internal/editor/logic.go b/internal/editor/logic.go index 3db00ce..4485789 100644 --- a/internal/editor/logic.go +++ b/internal/editor/logic.go @@ -163,7 +163,6 @@ func (l *Logic) Run() { defer l.exitWg.Done() // Dispatch initial directory index build on startup - log.Printf("Logic: Dispatching BuildIndexTask") l.workerPool.Dispatch(pool.NewBuildIndexTask(l.state.Browser.CurrentPath, l.mockFS)) for { @@ -171,14 +170,12 @@ func (l *Logic) Run() { case <-l.done: return case update := <-l.configChan: - log.Printf("Logic: ConfigEvent") update.apply(l.state) l.emitFrame() case layout := <-l.layoutChan: // Store the full GlyphLayout on editor state. // Derive LastLineY from it for scroll clamping. l.state.Editor.GlyphLayout = layout - log.Printf("LOGIC received GlyphLayout: ByteOffsets=%d, VisualLineStarts=%d", len(layout.ByteOffsets), len(layout.VisualLineStarts)) var derivedLastLineY ui.Dp if len(layout.Y) > 0 { derivedLastLineY = layout.Y[len(layout.Y)-1] @@ -188,13 +185,11 @@ func (l *Logic) Run() { l.emitFrame() } case events := <-l.inputChan: - log.Printf("Logic: InputEvents") for _, evt := range events { evt.Handler(evt.Data) } l.emitFrame() case query := <-l.searchQueryChan: - log.Printf("Logic: SearchQuery") if query != l.state.Browser.Query { l.state.Browser.Query = query if l.state.page == BrowserPage { @@ -203,7 +198,6 @@ func (l *Logic) Run() { } l.emitFrame() case path := <-l.openFileChan: - log.Printf("Logic: OpenFileChan %s", path) // Create chunked buffer for virtual scrolling chunkSize := DefaultChunkSize cb := NewChunkedBuffer(path, chunkSize, l.mockFS, "") @@ -235,7 +229,6 @@ func (l *Logic) Run() { if !ok { break } - log.Printf("Logic: Dispatching WriteFileTask for %s, content len=%d", l.state.Editor.Filename, len(content)) l.workerPool.DispatchNonBlocking( pool.NewWriteFileTask(l.state.Editor.Filename, content, l.mockFS), ) @@ -418,7 +411,6 @@ func (l *Logic) handleWorkerResult(res pool.Result) { if res.IsBrowserResult() { l.browserManager.HandleResult(res) } else if res.TaskType == pool.TypeReadFile { - log.Printf("Logic: TypeReadFile result success=%v", res.Success) if res.Success { if content, ok := res.Data.([]byte); ok { if l.state.Editor.ChunkedBuffer != nil { @@ -445,14 +437,12 @@ func (l *Logic) handleWorkerResult(res pool.Result) { cb.chunks = append(cb.chunks, nil) } cb.chunks[res.ChunkIdx] = chunk - log.Printf("Logic: Loaded chunk %d for %s (%d bytes)", res.ChunkIdx, res.FilePath, len(chunk)) } } else { log.Printf("Logic: ReadChunkTask failed for %s chunk %d: %v", res.FilePath, res.ChunkIdx, res.Error) } } } else if res.TaskType == pool.TypeStatFile { - log.Printf("Logic: TypeStatFile result success=%v", res.Success) if res.Success { if stat, ok := res.Data.(*pool.FileStat); ok { // Size guard: refuse to edit files above the limit. The browser can @@ -473,12 +463,10 @@ func (l *Logic) handleWorkerResult(res pool.Result) { } } } else if res.TaskType == pool.TypeBuildLineIndex { - log.Printf("Logic: TypeBuildLineIndex result success=%v", res.Success) if res.Success { if idx, ok := res.Data.(*types.LineIndex); ok { if l.state.Editor.ChunkedBuffer != nil { l.state.Editor.ChunkedBuffer.LineIndex = idx - log.Printf("Logic: LineIndex built with %d lines", idx.LineCount()) } } } diff --git a/internal/ui/render.go b/internal/ui/render.go index b4dd089..c57f486 100644 --- a/internal/ui/render.go +++ b/internal/ui/render.go @@ -6,7 +6,6 @@ import ( "image" "image/color" _ "image/png" - "log" "sort" "time" "unicode/utf8" @@ -222,11 +221,10 @@ func (r *Renderer) RegisterScroll(gtx layout.Context, id string, region Region, // CheckGestures checks all registered gestures and returns any events. func (r *Renderer) CheckGestures(q input.Source, m unit.Metric) []InputEvent { var events []InputEvent - for id, reg := range r.clicks { + for _, reg := range r.clicks { evt, ok := reg.click.Update(q) if ok { if evt.Kind == gesture.KindClick { - log.Printf("Renderer: Click detected on %s, pos=%v", id, evt.Position) events = append(events, InputEvent{ Handler: reg.handler, Data: Point{X: r.toDp(Px(evt.Position.X)), Y: r.toDp(Px(evt.Position.Y))}, @@ -266,7 +264,6 @@ func (r *Renderer) LastLineY() Dp { // drawWrappedText call. Used by the logic goroutine to position the cursor // and navigate by glyph instead of byte offset. func (r *Renderer) GlyphLayout() GlyphLayout { - log.Printf("VisualLineStarts = %v", r.glyphLayout.VisualLineStarts) return r.glyphLayout } @@ -304,7 +301,6 @@ func (r *Renderer) drawElement(gtx layout.Context, e Element) { if interactive, ok := e.(Interactive); ok { for _, interaction := range interactive.Interactions() { if interaction.Gesture == KeyDown || interaction.Gesture == KeyUp { - log.Printf("register gesture for %s", interactive.ID()) event.Op(gtx.Ops, interactive.ID()) reg := keyReg{Handler: interaction.Handler} r.Keys[interactive.ID()] = reg @@ -341,7 +337,6 @@ func (r *Renderer) drawElement(gtx layout.Context, e Element) { // Register input tag for key events for _, interaction := range interactive.Interactions() { if interaction.Gesture == KeyDown || interaction.Gesture == KeyUp { - log.Printf("register gesture for %s", interactive.ID()) event.Op(gtx.Ops, interactive.ID()) // Register handler