Richard Hansen
88057eade2
ace2_inner: Readability improvements
2021-08-16 00:34:30 -04:00
Richard Hansen
bc6428025a
ace2_inner: Use for..of iteration to improve readability
2021-08-16 00:34:30 -04:00
Richard Hansen
f06307cb4c
ace2_inner: Fix for..in iteration
...
See commit c38c34bef4
.
2021-08-16 00:34:30 -04:00
Richard Hansen
2d50a8aa95
ace2_inner: Fix efficiency of `rangeForLine()`
...
Returning `true` or `false` has no effect when iterating using
`Array.prototype.forEach`. This fixes a bug introduced in commit
b28bfe8e31
.
2021-08-16 00:34:30 -04:00
Richard Hansen
ca2e008e7b
ace2_inner: Move variable declarations to appropriate scope
2021-08-16 00:34:30 -04:00
Richard Hansen
bf10e70f2e
ace2_inner: Delete unnecessary `currentLine` variable
2021-08-16 00:34:30 -04:00
Richard Hansen
9fc613d362
ace2_inner: Delete unnecessary checks
2021-08-16 00:34:30 -04:00
Richard Hansen
a5f9c60a34
ace2_inner: Operate on Elements, not Nodes
2021-08-16 00:34:30 -04:00
Richard Hansen
aad75e4661
ace2_inner: Factor out duplicate line number div creation
2021-08-16 00:34:30 -04:00
Richard Hansen
3237f8d123
ace2_inner: Simplify iteration over line number divs
2021-08-16 00:34:30 -04:00
Richard Hansen
b238d9610a
ace2_inner: Factor out duplicate line height application
2021-08-16 00:34:30 -04:00
Richard Hansen
1b890e3d4d
ace2_inner: Replace `lineNumbersShown` with number of children
2021-08-16 00:34:30 -04:00
Richard Hansen
27363bf729
ace2_inner: Add line number divs directly, not via fragment
...
There's no layout thrashing so the fragment doesn't provide any
benefit.
2021-08-16 00:34:30 -04:00
Richard Hansen
e1a024847c
ace2_inner: Delete unnecessary `innerdocbody` variable
2021-08-16 00:34:30 -04:00
Richard Hansen
7d807d2fc5
ace2_inner: Delete unnecessary `container` variable
2021-08-16 00:34:30 -04:00
Richard Hansen
4b4584c264
ace2_inner: Delete unnecessary `doc` and `root` variables
2021-08-16 00:34:25 -04:00
Richard Hansen
ec63c15a40
ace2_inner: Simplify document body selection
2021-08-16 00:31:09 -04:00
Richard Hansen
11c86e677a
ace2_inner: Consistently use `outerWin` and `outerDoc`
2021-08-16 00:31:09 -04:00
Richard Hansen
98c1ba5808
ace2_inner: Use destructuring assignment to simplify
2021-08-16 00:31:09 -04:00
Richard Hansen
c7be4f9d2d
ace2_inner: Move `sidedivinner` creation to ace.js
2021-08-16 00:31:09 -04:00
Richard Hansen
15b1d4cb75
ace2_inner: Build `sidedivinner` programmatically
2021-08-16 00:31:09 -04:00
Richard Hansen
b80295c228
ace2_inner: Combine declaration and initialization
2021-08-16 00:31:09 -04:00
Richard Hansen
7a8edc816b
ace2_inner: Replace `initLineNumbers()` with an IIFE
2021-08-16 00:31:09 -04:00
Richard Hansen
b5bfff43cf
ace2_inner: Delete redundant class assignment
2021-08-16 00:31:08 -04:00
Richard Hansen
e581ee01f2
ace2_inner: Formatting improvements
2021-08-16 00:30:50 -04:00
Richard Hansen
0ca5a3459f
Timeslider: Install an error handler
2021-08-14 07:44:05 -04:00
Richard Hansen
1e22e0102d
Timeslider: Move `<title>` and `<script>` inside `<head>`
2021-08-14 07:44:05 -04:00
Richard Hansen
b6fba9d66d
Pad: Improve page load error handler
...
* Install the error handler early.
* Include stack trace.
* Remove unnecessary escaping.
* Improve formatting.
* Move to a separate script file.
2021-08-14 07:44:05 -04:00
Richard Hansen
d4e74fd038
Pad: Add missing `<head>` and `<body>` tags
...
The comment "head and body had been removed intentionally" implies
that the tags were causing some sort of problem, but the commit that
removed them (57075d1545
) didn't provide
any rationale. I'm assuming it was a mistake.
2021-08-14 07:44:05 -04:00
Richard Hansen
4a1f21ce34
pad_editbar: Convert snake case to camel case
2021-08-14 07:26:31 -04:00
Richard Hansen
5478d2ce60
pad_editbar: Use ES6 class syntax for readability
2021-08-14 07:26:31 -04:00
Richard Hansen
97ccf9e082
pad_editbar: Factor out duplicate code
2021-08-14 07:08:57 -04:00
Richard Hansen
ee41de4809
pad_editbar: Deprecate the `toggleDropDown` callback
2021-08-14 07:08:57 -04:00
Richard Hansen
c629ee09a8
pad_editbar: Call the callback asynchronously
...
This follows JavaScript best practices.
2021-08-14 07:08:57 -04:00
Richard Hansen
148e10821b
pad_editbar: Always call the callback
2021-08-14 07:08:57 -04:00
Richard Hansen
07e05a92eb
pad_editbar: Call the callback after all work is done
2021-08-14 07:08:57 -04:00
Richard Hansen
a1b924f746
pad_editbar: Don't pass a callback to `toggleDropDown()`
...
The function is synchronous so there's no point.
2021-08-14 07:08:57 -04:00
Richard Hansen
59d6a8b321
pad_editbar: Delete unnecessary `returned` variable
2021-08-14 07:01:50 -04:00
Richard Hansen
a4652d67a0
pad_editbar: Move `commands` up for readability
2021-08-14 07:01:50 -04:00
Richard Hansen
fda34407f9
pad_editbar: Move `dropdowns` initialization to constructor
...
This avoids null dereference if a buggy caller calls
`toggleDropDown('none')` before `init()`. (Ideally the caller would be
fixed, but this is not always feasible.)
2021-08-14 07:01:34 -04:00
Richard Hansen
42b0b1bf00
pad_editbar: Move `syncAnimation` out of `padeditbar` IIFE
...
This avoids the need for an IIFE.
2021-08-14 07:01:13 -04:00
Richard Hansen
ee996f530f
pad_editbar: Remove unnecessary `syncAnimationFn` variable
2021-08-14 07:01:13 -04:00
Richard Hansen
4b4eef5f4a
pad_editbar: Convert `registerDefaultCommands()` into a method
2021-08-14 07:01:13 -04:00
Richard Hansen
0d4f147349
pad_editbar: Simplify iteration
2021-08-14 07:01:13 -04:00
Richard Hansen
11faf6104a
pad_editbar: Convert `bodyKeyEvent()` into a method
2021-08-14 07:01:13 -04:00
Richard Hansen
b2fe6e3e7e
pad_editbar: Fix invalid use of `this`
2021-08-14 07:01:12 -04:00
Richard Hansen
b884628a5a
pad_editbar: Use arrow functions for callbacks, IIFEs
2021-08-14 07:01:12 -04:00
Richard Hansen
bdaa66c346
pad_editbar: Use `this` instead of `self`
2021-08-14 07:01:12 -04:00
Richard Hansen
118c66e5d0
HTML import: Improve log message for invalid HTML
2021-08-12 13:53:23 -04:00
Richard Hansen
c816c20bc7
HTML import: Replace cheerio with jsdom to simplify contentcollector
...
Cheerio provides jQuery-like objects but they wrap DOM Node-like
objects that are not 100% API compatible with the DOM spec. Because of
this, contentcollector, which is used in browsers and in Node.js
during HTML import, has until now needed to support two different
APIs. This commit modifies HTML import to use jsdom instead of cheerio
and simplifies contentcollector.
2021-08-12 13:53:23 -04:00