Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Commits on Aug 29, 2011
  1. Rename the project

    The old name was a relic of the original parent project that was
    killed. Rename it to more accurately represent what it is
Commits on Jul 15, 2011
  1. Simplify face usage and defaults

    Rely on prototypal inheritance to set the default values for faces
    making specifying them easier
Commits on Jul 14, 2011
  1. Make the face setting stuff a little better

    Setting faces now works without having to clear out the internal face
    variable manually. It is also much more flexible.
Commits on Jul 12, 2011
  1. Update todo

  2. Update todo list

  3. Fix typo in element reference

    The tests etc happened to work because it fell back on the
    non-standard browser behavior of finding the element on the page with
    the id of 'editor' when the editor variable did not exist in the
    current scope in one case, and it found a variable bound in an outer
    scope that happened to be the correct value in the other
  4. Add an s2e mouse move event

Commits on Jul 11, 2011
Commits on Jul 7, 2011
Commits on Jul 6, 2011
  1. First pass at selection modifying the face

    This is the first time I've changed the rendering through "extension"
    code so it is still super messy. This is the beginning of how future
    extensions can be written though. The selection itself is also still
    buggy but its getting closer
Commits on Jul 5, 2011
  1. Selecting text works

    It doesn't show up in the UI though and there's no use for it so I'm
    using a pretty liberal definition of 'works'
Commits on Jul 4, 2011
  1. Update the todo list

Commits on Jul 2, 2011
  1. Start refactoring the display

    The scrolling stuff made a messy file much messier. Its about time to
    start cleaning it up
  2. More vertical scrolling work

    Now moving the cursor beyond the boundaries of the visible frame will
    force the display to scroll
  3. Start working on vertical scrolling

    It /kind of/ works except:
      * There's not way to trigger it except test functions
      * It doesn't pay attention to if the cursor is visible
      * Mouse clicks don't work if scrolled past the first line
      * The code is super messy
      * It doesn't work
    Still, the first steps :)
  4. Remove line wrapping and fix click handling

    The click events were having trouble registering clicks on lines if
    they were past the last character. Fix this and remove line wrapping
    (for now) to make things simpler
Commits on Jul 1, 2011
Commits on Jun 30, 2011
  1. Remove some duplication

    The default value for the text put into the editor was specified in
    two separate places. Remove this duplication
Commits on Jun 28, 2011
  1. Further encapsulate the html elements

    Both display and inputManager end up appending html elements to the
    page to do their stuff. Keep these elements encapsulated in the
    respective files.
  2. Hide the characterReader inside the inputManager

    Nothing outside of the inputManager should know that its using a
    hidden field to read the keys. This is still awkward, but its a step
    in the right direcion
  3. Insert one char strings

    When there was only one character in the character reader it would
    throw an error so nothing was inserted in the editor. The result is
    only every second key press would work
Commits on Jun 25, 2011
Commits on Jun 23, 2011
  1. Use default keyboard handling for browser in places

    Rather than overriding and trying to interpret every key pressed, let
    the default behavior happen if a specific keybinding hasn't been
    registered over the top.
    This enables a /ton/
      * Weird keyboards
      * Cross browser input (for unregistered keys)
      * Paste without flash! (no copy yet)
    This works by attaching a hidden field when the input goes. If the
    editor doesn't recognize the keys pressed as a registered binding, the
    default behavior is executed upon this hidden field and its results
    inserted into the editor. It is then cleared out.
  2. Don't confuse number keys with escaped codes

    If the escaped codes are in the bindings hash without the '\'
    character they will get confused with the codes that map to the number
    keys. Distinguish them by leaving the escape character in there.
  3. Bind additional defaults.

    These defaults work with my standard keyboard and Google Chrome. My
    keyboard is a Kinesis Advantage so its not exactly a standard
    layout. Testing across keyboards and browsers is needed, but I'm
    putting that off until everything else is done
  4. Update input to allow raw keycodes

    Now keybindings can be set in the inputManager using the raw keycodes
    instead of just the characters that they map to in javascript. This
    can be used, for example, when a keyboard binds extra keys but
    javascript decodes them as extended ascii chars.
    The syntax is to escape the character code using '\' but since
    javascript automatically escapes backslashes in strings in practice
    the declaration will actually be something like 'C-\\195'
    Its probably going to be hard to get these key codes to work across
    platforms but it still is helpful especially if you are trying to
    trigger a specific keyboard. It wouldn't be too tricky to write a
    keyboard detection script that asked for user input and dynamically
    set the various codes, though this would be shitty from a user perspective
Commits on Jun 22, 2011
  1. Remove some duplication

Commits on Jun 21, 2011
  1. Refactor display to make private functions private

    Hide some of the helper functions so they can't be called from
    external code. Still need to do some work to figure out what the final
    API of the display will be, but it should be intelligently chosen, not
    just every function/method that I've needed
Something went wrong with that request. Please try again.