[gnome-code-assistance] [backends/css] Added support for parsing sass
- From: Jesse van den Kieboom <jessevdk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-code-assistance] [backends/css] Added support for parsing sass
- Date: Thu, 14 Nov 2013 08:10:35 +0000 (UTC)
commit f4c0f4a2bf1ee06a9f44c8384f03ea875dd33f0b
Author: Jesse van den Kieboom <jessevdk gmail com>
Date: Thu Nov 14 09:10:25 2013 +0100
[backends/css] Added support for parsing sass
backends/css/app.rb | 25 +++++++++++++++++++++----
data/org.gnome.codeassistance.gschema.xml.in | 2 +-
2 files changed, 22 insertions(+), 5 deletions(-)
---
diff --git a/backends/css/app.rb b/backends/css/app.rb
index 924ac9c..5cf64f2 100644
--- a/backends/css/app.rb
+++ b/backends/css/app.rb
@@ -25,23 +25,34 @@ else
require 'sass'
end
-class CssParser < Sass::SCSS::CssParser
- def self.expected(scanner, expected, line)
+module ColumnInfo
+ def expected(scanner, expeced, line)
pos = scanner.pos
nlpos = scanner.string.rindex("\n", pos)
begin
- super(scanner, expected, line)
+ super
rescue Sass::SyntaxError => e
e.modify_backtrace({:column => pos - nlpos})
raise e
end
end
+end
+
+class CssParser < Sass::SCSS::CssParser
+ extend ColumnInfo
@sass_script_parser = Class.new(Sass::Script::CssParser)
@sass_script_parser.send(:include, Sass::SCSS::ScriptParser)
end
+class ScssParser < Sass::SCSS::Parser
+ extend ColumnInfo
+
+ @sass_script_parser = Class.new(Sass::Script::Parser)
+ @sass_script_parser.send(:include, Sass::SCSS::ScriptParser)
+end
+
module Gnome::CodeAssistance
module Css
class Service < Service
@@ -52,8 +63,14 @@ module Gnome::CodeAssistance
f = File.new(doc.data_path, 'r')
+ if doc.path.end_with?('.css')
+ cls = CssParser
+ else
+ cls = ScssParser
+ end
+
begin
- parser = CssParser.new(f.read(), doc.path)
+ parser = cls.new(f.read(), doc.path)
parser.parse()
rescue Sass::SyntaxError => e
doc.diagnostics = [make_diagnostic(e)]
diff --git a/data/org.gnome.codeassistance.gschema.xml.in b/data/org.gnome.codeassistance.gschema.xml.in
index f4e1195..ec129e7 100644
--- a/data/org.gnome.codeassistance.gschema.xml.in
+++ b/data/org.gnome.codeassistance.gschema.xml.in
@@ -1,7 +1,7 @@
<schemalist>
<schema id="org.gnome.codeassistance" path="/org/gnome/codeassistance/">
<key name="language-mapping" type="a{ss}">
- <default>{'cpp': 'c', 'objc': 'c', 'chdr': 'c'}</default>
+ <default>{'cpp': 'c', 'objc': 'c', 'chdr': 'c', 'sass': 'css'}</default>
<summary>Language Mapping</summary>
<description>A mapping from language id to backend id</description>
</key>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]