[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master c9a7a2d 050/271: Add tail-end optimization.
From: |
Jackson Ray Hamilton |
Subject: |
[elpa] master c9a7a2d 050/271: Add tail-end optimization. |
Date: |
Thu, 05 Feb 2015 18:29:42 +0000 |
branch: master
commit c9a7a2d1f507f29dcc066c4b6405026ab4b55478
Author: Jackson Ray Hamilton <address@hidden>
Commit: Jackson Ray Hamilton <address@hidden>
Add tail-end optimization.
---
scopifier.js | 17 ++++++++++++++++-
1 files changed, 16 insertions(+), 1 deletions(-)
diff --git a/scopifier.js b/scopifier.js
index 29bdc85..c534ca7 100644
--- a/scopifier.js
+++ b/scopifier.js
@@ -21,6 +21,7 @@ process.stdin.on('end', function () {
scopes = [],
symbols = [],
comments = [],
+ continuous,
emacsified;
// Gracefully handle parse errors by doing nothing.
@@ -111,7 +112,21 @@ process.stdin.on('end', function () {
]);
});
- emacsified = scopes.concat(symbols.concat(comments));
+ continuous = symbols.concat(comments).sort(function (a, b) {
+ return a[1] - b[1];
+ });
+
+ continuous = continuous.slice(1).reduce(function (soFar, token) {
+ var previous = soFar[soFar.length - 1];
+ if (previous[0] === token[0]) {
+ previous[2] = token[2];
+ return soFar;
+ }
+ soFar.push(token);
+ return soFar;
+ }, continuous.slice(0, 1));
+
+ emacsified = scopes.concat(continuous);
emacsified.forEach(function (instruction) {
// Emacs starts counting from 1.
- [elpa] master eb14005 041/271: Rename scopify to scopifier. Use vectors., (continued)
- [elpa] master eb14005 041/271: Rename scopify to scopifier. Use vectors., Jackson Ray Hamilton, 2015/02/05
- [elpa] master f482c62 035/271: Use remove-text-properties as a temporary comment fix., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 615163a 045/271: Update screenshot., Jackson Ray Hamilton, 2015/02/05
- [elpa] master f4e075f 047/271: Readme updates., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 6cd2827 044/271: Cleanup old scopifier., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 2b8bc05 052/271: Remove buggy tail optimization. Move stdin cruft to cli., Jackson Ray Hamilton, 2015/02/05
- [elpa] master f75af43 036/271: Fix installation instructions., Jackson Ray Hamilton, 2015/02/05
- [elpa] master d881130 049/271: Rename test., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 40c9d93 048/271: Readme updates., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 348b4ca 056/271: Teeny., Jackson Ray Hamilton, 2015/02/05
- [elpa] master c9a7a2d 050/271: Add tail-end optimization.,
Jackson Ray Hamilton <=
- [elpa] master d2114ae 053/271: Remove indentation level., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 028370d 054/271: Refactor to be more functional., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 0e64e85 055/271: Simplify to 2 arrays., Jackson Ray Hamilton, 2015/02/05
- [elpa] master ff988f3 051/271: Fix duplicate tokens and tail-end bug., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 0143a29 058/271: Leverage .jslintrc files., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 38f0821 059/271: Perf with ugly for loops., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 148e55b 046/271: Readme updates., Jackson Ray Hamilton, 2015/02/05
- [elpa] master a02fe9f 064/271: Switch to microoptimized., Jackson Ray Hamilton, 2015/02/05
- [elpa] master f07ce20 061/271: Revert back to functions., Jackson Ray Hamilton, 2015/02/05
- [elpa] master 0ab3ed5 060/271: And it still made no difference., Jackson Ray Hamilton, 2015/02/05