From d8b324e14fab553f230d87595e8ad9d8362ef56e Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Fri, 1 Jun 2012 11:52:40 -0600 Subject: [PATCH] WIP: Starting on toggling comments. --- spec/app/line-commenter-spec.coffee | 18 ++++++++++++++++++ src/app/line-commenter.coffee | 17 +++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 spec/app/line-commenter-spec.coffee create mode 100644 src/app/line-commenter.coffee diff --git a/spec/app/line-commenter-spec.coffee b/spec/app/line-commenter-spec.coffee new file mode 100644 index 000000000..f6e9bab73 --- /dev/null +++ b/spec/app/line-commenter-spec.coffee @@ -0,0 +1,18 @@ +Buffer = require 'buffer' +Highlighter = require 'highlighter' +LineCommenter = require 'line-commenter' + +describe "LineCommenter", -> + [buffer, lineCommenter] = [] + + beforeEach -> + buffer = new Buffer(require.resolve('fixtures/sample.js')) + highlighter = new Highlighter(buffer) + lineCommenter = new LineCommenter(highlighter) + + fdescribe "toggleLineCommentsInRange", -> + lineCommenter.toggleLineCommentsInRange([[4, 5], [7, 8]]) + expect(buffer.lineForRow(4)).toBe "// while(items.length > 0) {" + expect(buffer.lineForRow(5)).toBe "// current = items.shift();" + expect(buffer.lineForRow(6)).toBe "// current < pivot ? left.push(current) : right.push(current);" + expect(buffer.lineForRow(7)).toBe "// }" diff --git a/src/app/line-commenter.coffee b/src/app/line-commenter.coffee new file mode 100644 index 000000000..54b1310d4 --- /dev/null +++ b/src/app/line-commenter.coffee @@ -0,0 +1,17 @@ +Range = require 'range' + +module.exports = +class LineCommenter + highlighter: null + buffer: null + aceMode: null + + constructor: (@highlighter) -> + @buffer = @highlighter.buffer + @aceMode = @buffer.getMode() + + toggleLineCommentsInRange: (range) -> + range = Range.fromObject(range) + + @aceMode.tog +