Sha256: d5501ba0be16262ae1eea028b45f4c6f4943342a185c6de75fdcdf2a2a2148ca

Contents?: true

Size: 1.51 KB

Versions: 14

Compression:

Stored size: 1.51 KB

Contents

module Redcar
  module SyntaxCheck
    class JavaScript < Checker
      supported_grammars  "JavaScript", "JavaScript (Rails)",
                          "jQuery (JavaScript)", "HTML"

      def jslint_path
        File.join(File.dirname(__FILE__),'..','..','vendor','jslint.js')
      end

      def rhino_path
        File.join(Redcar.asset_dir,'js.jar')
      end

      def main_method
        "org.mozilla.javascript.tools.shell.Main"
      end

      def check(*args)
        path = manifest_path(doc)
        name = File.basename(path)
        if t = JavaScript.thread and t.alive?
          if t[:doc] and t[:doc] == doc
            t.exit
            SyntaxCheck.remove_syntax_error_annotations(doc.edit_view)
          end
        end
        JavaScript.thread=Thread.new do
          SyntaxCheck.remove_syntax_error_annotations(doc.edit_view)
          Thread.current[:doc] = doc
          begin
            output = `java -cp #{rhino_path} #{main_method} #{jslint_path} #{path}`
            output.each_line do |line|
              if line =~ /Lint at line (\d+) character (\d+): (.*)/
                SyntaxCheck::Error.new(doc, $1.to_i-1, $3).annotate
                sleep 1
              end
            end
          rescue Object => e
            SyntaxCheck.message(
            "An error occurred while parsing #{name}: #{e.message}",:error)
          end
        end
      end

      private

      def self.thread=(thread)
        @thread=thread
      end

      def self.thread
        @thread
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 2 rubygems

Version Path
redcar-dev-0.12.12dev-java plugins/javascript/lib/syntax_check/javascript.rb
redcar-dev-0.12.11dev-java plugins/javascript/lib/syntax_check/javascript.rb
redcar-dev-0.12.10dev-java plugins/javascript/lib/syntax_check/javascript.rb
redcar-dev-0.12.9dev-java plugins/javascript/lib/syntax_check/javascript.rb
redcar-dev-0.12.8dev-java plugins/javascript/lib/syntax_check/javascript.rb
redcar-dev-0.12.7dev-java plugins/javascript/lib/syntax_check/javascript.rb
redcar-dev-0.12.6dev-java plugins/javascript/lib/syntax_check/javascript.rb
redcar-dev-0.12.4dev-java plugins/javascript/lib/syntax_check/javascript.rb
redcar-dev-0.12.3dev-java plugins/javascript/lib/syntax_check/javascript.rb
redcar-dev-0.12.1dev-java plugins/javascript/lib/syntax_check/javascript.rb
redcar-dev-0.12.0dev-java plugins/javascript/lib/syntax_check/javascript.rb
redcar-0.11 plugins/javascript/lib/syntax_check/javascript.rb
redcar-0.11.0dev plugins/javascript/lib/syntax_check/javascript.rb
redcar-0.10 plugins/javascript/lib/syntax_check/javascript.rb