Skip to content

Commit 82864e3

Browse files
authored
Merge pull request #4 from mvc-works/refine-api
Switching to addEventListener
2 parents 3df6a93 + b8fd3fd commit 82864e3

File tree

8 files changed

+573
-923
lines changed

8 files changed

+573
-923
lines changed

package.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@mvc-works/codearea",
3-
"version": "0.0.1-a2",
3+
"version": "0.0.1-a3",
44
"description": "Web app scaffold based on Webpack",
55
"main": "lib/codearea.js",
66
"scripts": {
@@ -21,20 +21,20 @@
2121
],
2222
"devDependencies": {
2323
"assets-webpack-plugin": "^3.9.10",
24-
"cirru-script": "0.5.5",
25-
"cirru-script-loader": "0.5.4",
24+
"cirru-script": "0.6.1",
25+
"cirru-script-loader": "0.5.5",
2626
"coffee-loader": "^0.9.0",
27-
"coffeescript": "^2.4.1",
28-
"css-loader": "^3.4.0",
27+
"coffeescript": "^2.5.0",
28+
"css-loader": "^3.4.2",
2929
"duplicate-package-checker-webpack-plugin": "^3.0.0",
3030
"file-loader": "^5.0.2",
3131
"hsl": "^0.1.1",
32-
"http-server": "^0.12.0",
32+
"http-server": "^0.12.1",
3333
"json-loader": "^0.5.3",
3434
"stir-template": "^0.2.2",
35-
"style-loader": "^1.1.2",
35+
"style-loader": "^1.1.3",
3636
"url-loader": "^3.0.0",
37-
"webpack": "^4.41.4",
37+
"webpack": "^4.41.5",
3838
"webpack-cli": "^3.3.10",
3939
"webpack-dev-server": "^3.10.1",
4040
"webpack-hud": "^0.1.2"

src/codearea.coffee

Lines changed: 41 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,9 @@ at_line_end = (text, point) ->
8282
false
8383

8484
# tab to indent is neccesary
85-
key_tab = (target) ->
85+
key_tab = (target, event) ->
86+
event.preventDefault()
87+
8688
caret = wrap_text target
8789
# o caret
8890
{all,ar,ac,br,bc} = caret
@@ -112,7 +114,9 @@ key_tab = (target) ->
112114
write_text target, {all,ar,ac,br,bc}
113115

114116
# use shift tab to remove indentation
115-
key_shift_tab = (target) ->
117+
key_shift_tab = (target, event) ->
118+
event.preventDefault()
119+
116120
caret = wrap_text target
117121
{all,ar,ac,br,bc} = caret
118122
if caret.same
@@ -209,7 +213,9 @@ key_ctrl_shift_d = (target) ->
209213
write_text target, {all,ar,ac,br,bc}
210214

211215
# enter only, consider last line and
212-
key_enter = (target) ->
216+
key_enter = (target, event) ->
217+
event.preventDefault()
218+
213219
caret = wrap_text target
214220
{all,ar,ac} = caret
215221
if caret.same
@@ -224,7 +230,8 @@ key_enter = (target) ->
224230
write_text target, {all,ar,ac}
225231

226232
# press backspace at head, last line if empty, delete it
227-
key_backspace = (target) ->
233+
key_backspace = (target, event) ->
234+
228235
caret = wrap_text target
229236
{all,ar,ac} = caret
230237
if caret.same
@@ -233,12 +240,14 @@ key_backspace = (target) ->
233240
if even n then all[ar] = all[ar][...n-2] + all[ar][n..]
234241
else all[ar] = all[ar][...n-1] + all[ar][n..]
235242
ac = n - 2
243+
event.preventDefault()
236244
write_text target, {all,ar,ac}
237245
else if all[ar-1]? and caret.as
238246
if all[ar-1].match /^\s+$/
239247
all = all[...ar-1].concat all[ar..]
240248
ar = ar-1
241249
ac = 0
250+
event.preventDefault()
242251
write_text target, {all,ar,ac}
243252
# o caret.ae
244253
else if all[ar].length>1 and (not caret.ae)
@@ -247,6 +256,7 @@ key_backspace = (target) ->
247256
if pair in ['{}', '()', '[]', '""', "''", '``']
248257
all[ar] = all[ar][...ac-1] + all[ar][ac+1..]
249258
ac -= 1
259+
event.preventDefault()
250260
write_text target, {all,ar,ac}
251261

252262
# ctrl Enter to open a new line with indentation
@@ -307,7 +317,9 @@ key_ctrl_shift_down = (target) ->
307317
write_text target, {all,ar,ac,br,bc}
308318

309319
# left-bracket
310-
key_bracket = (target, bracket) ->
320+
key_bracket = (target, event, bracket) ->
321+
event.preventDefault()
322+
311323
caret = wrap_text target
312324
{all,ac,ar,br,bc} = caret
313325
# o bracket
@@ -318,7 +330,9 @@ key_bracket = (target, bracket) ->
318330
bc += 1
319331
write_text target, {all,ar,ac,br,bc}
320332

321-
key_bracket_close = (target, closer) ->
333+
key_bracket_close = (target, event, closer) ->
334+
event.preventDefault()
335+
322336
caret = wrap_text target
323337
{all,ar,ac} = caret
324338
if caret.same
@@ -335,7 +349,9 @@ key_home = (target) ->
335349
ac = if spaces? then spaces[0].length else 0
336350
write_text target, {all, ar, ac}
337351

338-
key_quote = (target, sign) ->
352+
key_quote = (target, event, sign) ->
353+
event.preventDefault()
354+
339355
caret = wrap_text target
340356
if caret.same
341357
{all, ar, ac} = caret
@@ -356,25 +372,25 @@ key_quote = (target, sign) ->
356372

357373
# new version of map_keys
358374
call_shortcut =
359-
9: (target) -> key_tab target
360-
13: (target) -> key_enter target
361-
8: (target) -> key_backspace target
375+
9: (target, event) -> key_tab target, event
376+
13: (target, event) -> key_enter target, event
377+
8: (target, event) -> key_backspace target, event
362378
36: (target) -> key_home target
363-
219: (target) -> key_bracket target, '[]'
364-
192: (target) -> key_quote target, '`'
365-
# 222: (target) -> key_quote target, "'"
366-
221: (target) -> key_bracket_close target, ']'
367-
'shift 9': (target) -> key_shift_tab target
368-
'shift 57': (target) -> key_bracket target, '()'
369-
'shift 48': (target) -> key_bracket_close target, ')'
370-
'shift 219': (target) -> key_bracket target, '{}'
371-
'shift 221': (target) -> key_bracket_close target, '}'
372-
'shift 222': (target) -> key_quote target, '"'
379+
219: (target, event) -> key_bracket target, event, '[]'
380+
192: (target, event) -> key_quote target, event, '`'
381+
# 222: (target, event) -> key_quote target, event, "'"
382+
221: (target, event) -> key_bracket_close target, event, ']'
383+
'shift 9': (target, event) -> key_shift_tab target, event
384+
'shift 57': (target, event) -> key_bracket target, event, '()'
385+
'shift 48': (target, event) -> key_bracket_close target, event, ')'
386+
'shift 219': (target, event) -> key_bracket target, event, '{}'
387+
'shift 221': (target, event) -> key_bracket_close target, event, '}'
388+
'shift 222': (target, event) -> key_quote target, event, '"'
373389
'ctrl 76': (target) -> key_ctrl_l target
374-
'ctrl 13': (target) -> key_ctrl_enter target
390+
'ctrl 13': (target, event) -> key_ctrl_enter target, event
375391
'ctrl 75': (target) -> key_ctrl_k target
376392
'ctrl 85': (target) -> key_ctrl_u target
377-
'ctrl shift 13': (target) -> key_ctrl_shift_enter target
393+
'ctrl shift 13': (target, event) -> key_ctrl_shift_enter target, event
378394
'ctrl shift 75': (target) -> key_ctrl_shift_k target
379395
'ctrl shift 68': (target) -> key_ctrl_shift_d target
380396
'ctrl shift 38': (target) -> key_ctrl_shift_up target
@@ -399,16 +415,16 @@ exports.codearea = (area) ->
399415
mark+= 'shift ' if e.shiftKey
400416
mark+= String e.keyCode
401417
# o mark
402-
call_shortcut[mark] area if call_shortcut[mark]?
418+
call_shortcut[mark] area, e if call_shortcut[mark]?
403419

404420
area.__codearea__ = handleEvents
405421

406-
area.onkeydown = handleEvents
422+
area.addEventListener 'keydown', handleEvents
407423

408424
exports.teardownCodearea = (area) ->
409425
if not area.__codearea__?
410426
console.warn area, 'is not a textarea'
411427
return
412428

413-
area.onkeydown = null
429+
area.removeEventListner 'keydown', area.__codearea__
414430
area.__codearea__

src/main.cirru

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ console.log :loaded
66
var get $ \ (id)
77
document.getElementById id
88
var
9-
(object~ codearea) $ require :./codearea
9+
({}~ codearea) $ require :./codearea
1010

1111
var main $ \ ()
1212
var paper $ get :paper

upload.cirru

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
2+
{} (:host |mvc-works.org)
3+
:uploads $ []
4+
{} (:from |dist/*) (:to |cdn/codearea/)
5+
{} (:from |dist/*) (:to |repo/mvc-works/codearea/)

upload.edn

Lines changed: 0 additions & 6 deletions
This file was deleted.

webpack.dev.cirru

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ var
2525
:use :cirru-script-loader
2626
{} (:test /\.coffee$) (:exclude /node_modules)
2727
:use :coffee-loader
28-
{} (:test "/\.(png|jpg|gif)$")
28+
{} (:test "/\\.(png|jpg|gif)$")
2929
:loader :url-loader
3030
:query $ {} (:limit 100)
3131
{} (:test /\.css$) $ :use

webpack.release.cirru

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ var
2525
{} (:test /\.cirru$) (:loader :cirru-script-loader) (:exclude /node_modules)
2626
{} (:test /\.coffee$) (:exclude /node_modules)
2727
:use :coffee-loader
28-
{} (:test "/\.(png|jpg)$") (:loader :url-loader)
28+
{} (:test "/\\.(png|jpg)$") (:loader :url-loader)
2929
:query $ {} (:limit 100)
3030
{} (:test /\.css$) $ :loaders $ [] :style-loader :css-loader
3131
:stats $ {}

0 commit comments

Comments
 (0)