branch: master
commit aaf199e81ce7c7372a149a12f3c7f9fa5604b9be
Author: Jackson Ray Hamilton <jack...@jacksonrayhamilton.com>
Commit: Jackson Ray Hamilton <jack...@jacksonrayhamilton.com>
Fix global wraparound.
---
context-coloring.el | 11 ++++++++++-
test/fixtures/depth.js | 23 +++++++++++++++++++++++
2 files changed, 33 insertions(+), 1 deletions(-)
diff --git a/context-coloring.el b/context-coloring.el
index 29eb00e..6fc2545 100644
--- a/context-coloring.el
+++ b/context-coloring.el
@@ -112,7 +112,16 @@ Determines depth at which to cycle through faces again.")
For example: 'context-coloring-depth-1-face'."
(intern-soft
(concat "context-coloring-depth-"
- (number-to-string (mod depth context-coloring-face-count))
+ (number-to-string
+ (or
+ ;; Has a face directly mapping to it.
+ (and (< depth context-coloring-face-count)
+ depth)
+ ;; After the number of available faces are used up, pretend the
0th
+ ;; face doesn't exist.
+ (+ 1
+ (mod (- depth 1)
+ (- context-coloring-face-count 1)))))
"-face")))
(defconst context-coloring-path
diff --git a/test/fixtures/depth.js b/test/fixtures/depth.js
new file mode 100644
index 0000000..107d8ca
--- /dev/null
+++ b/test/fixtures/depth.js
@@ -0,0 +1,23 @@
+function a() {
+ function b() {
+ function c() {
+ function d() {
+ function e() {
+ function f() {
+ function g() {
+ function h() {
+ function i() {
+ function j() {
+ function k() {
+
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}