Mercurial > repos > tabletprog
changeset 117:f4e464a17579
Cleanup selection code in editor.
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 15 Apr 2013 21:35:37 -0700 |
parents | 9cf3e0b18ecc |
children | 0a66fe3a368a |
files | src/editor.tp |
diffstat | 1 files changed, 26 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/src/editor.tp Mon Apr 15 21:14:55 2013 -0700 +++ b/src/editor.tp Mon Apr 15 21:35:37 2013 -0700 @@ -44,6 +44,26 @@ valid? <- false } +setSelection:withInNode <- :astnode :innode { + fakeEvent <- #{ + stopPropagation <- :Blah { + } + } + selection <- #{ + valid? <- true + in <- { + (innode domNode) onclick: fakeEvent + } + out <- { + fakeEvent <- #{ + stopPropagation <- :Blah { + } + } + ((astnode up) domNode) onclick: fakeEvent + } + } +} + editFile <- :path { get: path :request { addClass: (q: "body") "editorMode" @@ -105,6 +125,7 @@ selectParent: domnode selectQuery: ".selectParent > .opname" in: domnode showOps + setSelection: astnode withInNode: (astnode left) event stopPropagation: (foreign: undefined) } @@ -115,29 +136,12 @@ syms <- filter: (symtable allSymbols: (foreign: undefined)) :sym { isLambda: ((symtable find: sym) def) } - self selection!: #{ - valid? <- true - in <- { - fakeEvent <- #{ - stopPropagation <- :Blah { - } - } - if: (astnode receiver) != (foreign: null) { - ((astnode receiver) domNode) onclick: fakeEvent - } else: { - if: ((astnode args) length) > 0 { - (((astnode args) getEl: 0) domNode) onclick: fakeEvent - } - } - } - out <- { - fakeEvent <- #{ - stopPropagation <- :Blah { - } - } - ((astnode up) domNode) onclick: fakeEvent - } + inner <- if: (astnode receiver) != (foreign: null) { + astnode receiver + } else: { + (astnode args) getEl: 0 } + setSelection: astnode withInNode: inner popInscope: syms onClick: :key { astnode name!: key parts <- key split: ":"