New Komodo API

Define a better core editor API. Make it easily accessible, easy to use and ensure it's properly documented.

Examples (conceptual):

  • ko.views.manager.currentView (really? ain't that a little verbose?), how about ko.editor, or ko.currentEditor?
  • make a lightweight wrapper around Scintilla, to provide common operations like: next word, nextStylingPosition, isIdentifier, isKeyword...
  • ensure there are events dispatched for common editor operations - text modified, paste, keypress, scrolling, resize

Concept

Planned API's

  • menu, toolbar

    • add(label, fn, icon)
  • keybindings (bug 95463)

    • add(sequence, fn|command)
    • remove(sequence)
  • editor (more in bug 96416)

    • text
    • position
    • anchor
    • linenumber
    • nextStyle(pos) -> returns pos, stylename where style next changes
  • runcommands

    • run(cmd) > returns output retval/stdout/stderr values
  • run output

    • Syntax Highlight
    • replaceText
    • append
  • Commands

    • Register Commands
    • Get Commands

JetPack API's to Reuse if possible

  • clipboard
    • get()
    • put()
  • events
    • on(name)
    • off(name)
  • io/file
    • open(path, mode) > returns a stream object
  • io/stream
    • read()
    • write(data)