'use strict';

var RSVP = require('rsvp');
var less = require('less');

module.exports = function (source) {
  return new RSVP.Promise(function (resolve, reject) {
    try {
      less.Parser().parse(source, function (err, result) {
        if (err) {
          console.error(err);
          return reject(err);
        }
        resolve(result.toCSS().trim());
      });
    } catch (e) {
      reject(e);
    }
  });
};
@@ -92,22 +92,20 @@
 nction (
-source
+data
 ) %7B%0A  re
@@ -147,56 +147,33 @@
 olve
-, reject) %7B%0A    try %7B%0A      less.Parser().parse(
+) %7B%0A    less.render(data.
 sour
@@ -193,16 +193,15 @@
 (err
+or
 , 
-result
+css
 ) %7B%0A
@@ -210,17 +210,17 @@
     
- 
- 
 if (err
+or
 ) %7B%0A
@@ -231,59 +231,336 @@
     
-  console.error(err);%0A          return reject(err);
+// index starts at 1%0A        var line = parseInt(error.line, 10) %7C%7C 0;%0A        var ch = parseInt(error.column, 10) %7C%7C 0;%0A        if (line %3E 0) %7B%0A          line = line - 1;%0A        %7D%0A        if (ch %3E 0) %7B%0A          ch = ch - 1;%0A        %7D%0A        var errors = %7B%0A          line: line,%0A          ch: ch,%0A          msg: error.message
 %0A   
@@ -557,32 +557,33 @@
 essage%0A        %7D
+;
 %0A        resolve
@@ -587,32 +587,63 @@
 lve(
-result.toCSS().trim());%0A
+%7B%0A          errors: %5Berrors%5D,%0A          result: null%0A  
     
@@ -652,48 +652,110 @@
 %7D);%0A
+  
     %7D
- catch (e) %7B%0A      reject(e
+%0A      var res = css;%0A      resolve(%7B%0A        errors: null,%0A        result: res%0A      %7D
 );%0A    %7D
 %0A  %7D
@@ -750,16 +750,18 @@
 );%0A    %7D
+);
 %0A  %7D);%0A%7D
@@ -761,8 +761,9 @@
   %7D);%0A%7D;
+%0A

update less processor