Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.

Sat, 21 Jun 2014 22:35:36 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 21 Jun 2014 22:35:36 +0200
changeset 3647
fef91a1eb27b
parent 3646
cfbb47b6d885
child 3648
e6c4ebc3c2fe

Added support for the QScintilla CoffeeScript lexer (QsciLexerCoffeeScript) as of QScintilla 2.8.3.

APIs/Python3/eric5.api file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
Documentation/Source/eric5.QScintilla.Lexers.LexerCoffeeScript.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric5.QScintilla.Lexers.html file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorPropertiesPage.py file | annotate | diff | comparison | revisions
Preferences/ConfigurationPages/EditorPropertiesPage.ui file | annotate | diff | comparison | revisions
Preferences/__init__.py file | annotate | diff | comparison | revisions
QScintilla/Lexers/LexerCoffeeScript.py file | annotate | diff | comparison | revisions
QScintilla/Lexers/__init__.py file | annotate | diff | comparison | revisions
changelog file | annotate | diff | comparison | revisions
eric5.e4p file | annotate | diff | comparison | revisions
--- a/APIs/Python3/eric5.api	Sat Jun 21 18:11:38 2014 +0200
+++ b/APIs/Python3/eric5.api	Sat Jun 21 22:35:36 2014 +0200
@@ -3842,7 +3842,7 @@
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.ARITHMETIC_OP?7
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BENCHMARK_KEYS?7
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BaseReport.error?4(line_number, offset, text, check)
-eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BaseReport.error_args?4(line_number, offset, code, check, *args)
+eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BaseReport.error_args?4(line_number, offset, text, check, *args)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BaseReport.get_count?4(prefix='')
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BaseReport.get_file_results?4()
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BaseReport.get_statistics?4(prefix='')
@@ -3855,6 +3855,7 @@
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BaseReport.stop?4()
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.BaseReport?1(options)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.COMMENT_WITH_NL?7
+eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.COMPARE_NEGATIVE_REGEX?7
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.COMPARE_SINGLETON_REGEX?7
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.COMPARE_TYPE_REGEX?7
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.Checker.build_tokens_line?4()
@@ -3863,8 +3864,8 @@
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.Checker.check_logical?4()
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.Checker.check_physical?4(line)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.Checker.generate_tokens?4()
+eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.Checker.maybe_check_physical?4(token)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.Checker.readline?4()
-eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.Checker.readline_check_physical?4()
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.Checker.report_invalid_syntax?4()
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.Checker.run_check?4(check, argument_names)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.Checker?1(filename=None, lines=None, options=None, report=None, **kwargs)
@@ -3882,12 +3883,14 @@
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.KEYWORD_REGEX?7
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.LAMBDA_REGEX?7
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.MAX_LINE_LENGTH?7
+eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.NEWLINE?7
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.OPERATOR_REGEX?7
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.PROJECT_CONFIG?7
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.RAISE_COMMA_REGEX?7
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.REPORT_FORMAT?7
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.RERAISE_COMMA_REGEX?7
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.SINGLETONS?7
+eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.SKIP_COMMENTS?7
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.SKIP_TOKENS?7
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.StandardReport.error?4(line_number, offset, text, check)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.StandardReport.error_args?4(line_number, offset, code, check, *args)
@@ -3910,12 +3913,14 @@
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.WS_OPTIONAL_OPERATORS?7
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8._add_check?5(check, kind, codes, args)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8._checks?8
+eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8._is_eol_token?5(token)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8._main?5()
-eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.blank_lines?4(logical_line, blank_lines, indent_level, line_number, previous_logical, previous_indent_level)
+eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.blank_lines?4(logical_line, blank_lines, indent_level, line_number, blank_before, previous_logical, previous_indent_level)
+eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.comparison_negative?4(logical_line)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.comparison_to_singleton?4(logical_line, noqa)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.comparison_type?4(logical_line)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.compound_statements?4(logical_line)
-eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.continued_indentation?4(logical_line, tokens, indent_level, hang_closing, noqa, verbose)
+eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.continued_indentation?4(logical_line, tokens, indent_level, hang_closing, indent_char, noqa, verbose)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.expand_indent?4(line)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.explicit_line_join?4(logical_line, tokens)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.extraneous_whitespace?4(logical_line)
@@ -3924,16 +3929,16 @@
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.imports_on_separate_lines?4(logical_line)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.indentation?4(logical_line, previous_logical, indent_char, indent_level, previous_indent_level)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.init_checks_registry?4()
-eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.maximum_line_length?4(physical_line, max_line_length)
-eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.missing_newline?4(physical_line)
+eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.maximum_line_length?4(physical_line, max_line_length, multiline)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.missing_whitespace?4(logical_line)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.missing_whitespace_around_operator?4(logical_line, tokens)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.mute_string?4(text)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.noqa?7
+eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.normalize_paths?4(value, parent=os.curdir)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.parse_udiff?4(diff, patterns=None, parent='.')
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.process_options?4(arglist=None, parse_argv=False, config_file=None, parser=None)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.python_3000_backticks?4(logical_line)
-eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.python_3000_has_key?4(logical_line)
+eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.python_3000_has_key?4(logical_line, noqa)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.python_3000_not_equal?4(logical_line)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.python_3000_raise_comma?4(logical_line)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.read_config?4(options, args, arglist, parser)
@@ -3942,13 +3947,13 @@
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.stdin_get_value?4()
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.tabs_obsolete?4(physical_line)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.tabs_or_spaces?4(physical_line, indent_char)
-eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.trailing_blank_lines?4(physical_line, lines, line_number)
+eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.trailing_blank_lines?4(physical_line, lines, line_number, total_lines)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.trailing_whitespace?4(physical_line)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.whitespace_around_comma?4(logical_line)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.whitespace_around_keywords?4(logical_line)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.whitespace_around_named_parameter_equals?4(logical_line, tokens)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.whitespace_around_operator?4(logical_line)
-eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.whitespace_before_inline_comment?4(logical_line, tokens)
+eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.whitespace_before_comment?4(logical_line, tokens)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.pep8.whitespace_before_parameters?4(logical_line, tokens)
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.translations._messages?8
 eric5.Plugins.CheckerPlugins.CodeStyleChecker.translations._messages_sample_args?8
@@ -7198,6 +7203,11 @@
 eric5.QScintilla.Lexers.LexerCSharp.LexerCSharp.isCommentStyle?4(style)
 eric5.QScintilla.Lexers.LexerCSharp.LexerCSharp.isStringStyle?4(style)
 eric5.QScintilla.Lexers.LexerCSharp.LexerCSharp?1(parent=None)
+eric5.QScintilla.Lexers.LexerCoffeeScript.LexerJavaScript.defaultKeywords?4(kwSet)
+eric5.QScintilla.Lexers.LexerCoffeeScript.LexerJavaScript.initProperties?4()
+eric5.QScintilla.Lexers.LexerCoffeeScript.LexerJavaScript.isCommentStyle?4(style)
+eric5.QScintilla.Lexers.LexerCoffeeScript.LexerJavaScript.isStringStyle?4(style)
+eric5.QScintilla.Lexers.LexerCoffeeScript.LexerJavaScript?1(parent=None)
 eric5.QScintilla.Lexers.LexerContainer.LexerContainer.description?4(style)
 eric5.QScintilla.Lexers.LexerContainer.LexerContainer.keywords?4(kwSet)
 eric5.QScintilla.Lexers.LexerContainer.LexerContainer.language?4()
@@ -8407,6 +8417,8 @@
 eric5.Utilities.FtpUtilities.FtpDirLineParser.WindowsMode?7
 eric5.Utilities.FtpUtilities.FtpDirLineParser.parseLine?4(line)
 eric5.Utilities.FtpUtilities.FtpDirLineParser?1(parent=None)
+eric5.Utilities.MimeTypes.TextMimeTypes?7
+eric5.Utilities.MimeTypes.isTextFile?4(filename)
 eric5.Utilities.ModuleParser.Attribute.addAssignment?4(lineno)
 eric5.Utilities.ModuleParser.Attribute?1(module, name, file, lineno, isSignal=False)
 eric5.Utilities.ModuleParser.Class.addAttribute?4(name, attr)
@@ -8624,8 +8636,6 @@
 eric5.Utilities.isinpath?4(file)
 eric5.Utilities.joinext?4(prefix, ext)
 eric5.Utilities.linesep?4()
-eric5.Utilities.mimetypes.TextMimeTypes?7
-eric5.Utilities.mimetypes.isTextFile?4(filename)
 eric5.Utilities.normabsjoinpath?4(a, *p)
 eric5.Utilities.normabspath?4(path)
 eric5.Utilities.normcaseabspath?4(path)
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Sat Jun 21 18:11:38 2014 +0200
+++ b/Documentation/Help/source.qhp	Sat Jun 21 22:35:36 2014 +0200
@@ -850,6 +850,7 @@
               <section title="eric5.QScintilla.Lexers.LexerCPP" ref="eric5.QScintilla.Lexers.LexerCPP.html" />
               <section title="eric5.QScintilla.Lexers.LexerCSS" ref="eric5.QScintilla.Lexers.LexerCSS.html" />
               <section title="eric5.QScintilla.Lexers.LexerCSharp" ref="eric5.QScintilla.Lexers.LexerCSharp.html" />
+              <section title="eric5.QScintilla.Lexers.LexerCoffeeScript" ref="eric5.QScintilla.Lexers.LexerCoffeeScript.html" />
               <section title="eric5.QScintilla.Lexers.LexerContainer" ref="eric5.QScintilla.Lexers.LexerContainer.html" />
               <section title="eric5.QScintilla.Lexers.LexerD" ref="eric5.QScintilla.Lexers.LexerD.html" />
               <section title="eric5.QScintilla.Lexers.LexerDiff" ref="eric5.QScintilla.Lexers.LexerDiff.html" />
@@ -7330,6 +7331,7 @@
       <keyword name="LexerCSharp.initProperties" id="LexerCSharp.initProperties" ref="eric5.QScintilla.Lexers.LexerCSharp.html#LexerCSharp.initProperties" />
       <keyword name="LexerCSharp.isCommentStyle" id="LexerCSharp.isCommentStyle" ref="eric5.QScintilla.Lexers.LexerCSharp.html#LexerCSharp.isCommentStyle" />
       <keyword name="LexerCSharp.isStringStyle" id="LexerCSharp.isStringStyle" ref="eric5.QScintilla.Lexers.LexerCSharp.html#LexerCSharp.isStringStyle" />
+      <keyword name="LexerCoffeeScript (Module)" id="LexerCoffeeScript (Module)" ref="eric5.QScintilla.Lexers.LexerCoffeeScript.html" />
       <keyword name="LexerContainer" id="LexerContainer" ref="eric5.QScintilla.Lexers.LexerContainer.html#LexerContainer" />
       <keyword name="LexerContainer (Constructor)" id="LexerContainer (Constructor)" ref="eric5.QScintilla.Lexers.LexerContainer.html#LexerContainer.__init__" />
       <keyword name="LexerContainer (Module)" id="LexerContainer (Module)" ref="eric5.QScintilla.Lexers.LexerContainer.html" />
@@ -7390,12 +7392,18 @@
       <keyword name="LexerJava.initProperties" id="LexerJava.initProperties" ref="eric5.QScintilla.Lexers.LexerJava.html#LexerJava.initProperties" />
       <keyword name="LexerJava.isCommentStyle" id="LexerJava.isCommentStyle" ref="eric5.QScintilla.Lexers.LexerJava.html#LexerJava.isCommentStyle" />
       <keyword name="LexerJava.isStringStyle" id="LexerJava.isStringStyle" ref="eric5.QScintilla.Lexers.LexerJava.html#LexerJava.isStringStyle" />
+      <keyword name="LexerJavaScript" id="LexerJavaScript" ref="eric5.QScintilla.Lexers.LexerCoffeeScript.html#LexerJavaScript" />
       <keyword name="LexerJavaScript" id="LexerJavaScript" ref="eric5.QScintilla.Lexers.LexerJavaScript.html#LexerJavaScript" />
+      <keyword name="LexerJavaScript (Constructor)" id="LexerJavaScript (Constructor)" ref="eric5.QScintilla.Lexers.LexerCoffeeScript.html#LexerJavaScript.__init__" />
       <keyword name="LexerJavaScript (Constructor)" id="LexerJavaScript (Constructor)" ref="eric5.QScintilla.Lexers.LexerJavaScript.html#LexerJavaScript.__init__" />
       <keyword name="LexerJavaScript (Module)" id="LexerJavaScript (Module)" ref="eric5.QScintilla.Lexers.LexerJavaScript.html" />
+      <keyword name="LexerJavaScript.defaultKeywords" id="LexerJavaScript.defaultKeywords" ref="eric5.QScintilla.Lexers.LexerCoffeeScript.html#LexerJavaScript.defaultKeywords" />
       <keyword name="LexerJavaScript.defaultKeywords" id="LexerJavaScript.defaultKeywords" ref="eric5.QScintilla.Lexers.LexerJavaScript.html#LexerJavaScript.defaultKeywords" />
+      <keyword name="LexerJavaScript.initProperties" id="LexerJavaScript.initProperties" ref="eric5.QScintilla.Lexers.LexerCoffeeScript.html#LexerJavaScript.initProperties" />
       <keyword name="LexerJavaScript.initProperties" id="LexerJavaScript.initProperties" ref="eric5.QScintilla.Lexers.LexerJavaScript.html#LexerJavaScript.initProperties" />
+      <keyword name="LexerJavaScript.isCommentStyle" id="LexerJavaScript.isCommentStyle" ref="eric5.QScintilla.Lexers.LexerCoffeeScript.html#LexerJavaScript.isCommentStyle" />
       <keyword name="LexerJavaScript.isCommentStyle" id="LexerJavaScript.isCommentStyle" ref="eric5.QScintilla.Lexers.LexerJavaScript.html#LexerJavaScript.isCommentStyle" />
+      <keyword name="LexerJavaScript.isStringStyle" id="LexerJavaScript.isStringStyle" ref="eric5.QScintilla.Lexers.LexerCoffeeScript.html#LexerJavaScript.isStringStyle" />
       <keyword name="LexerJavaScript.isStringStyle" id="LexerJavaScript.isStringStyle" ref="eric5.QScintilla.Lexers.LexerJavaScript.html#LexerJavaScript.isStringStyle" />
       <keyword name="LexerLua" id="LexerLua" ref="eric5.QScintilla.Lexers.LexerLua.html#LexerLua" />
       <keyword name="LexerLua (Constructor)" id="LexerLua (Constructor)" ref="eric5.QScintilla.Lexers.LexerLua.html#LexerLua.__init__" />
@@ -14173,6 +14181,7 @@
       <file>eric5.QScintilla.Lexers.LexerCPP.html</file>
       <file>eric5.QScintilla.Lexers.LexerCSS.html</file>
       <file>eric5.QScintilla.Lexers.LexerCSharp.html</file>
+      <file>eric5.QScintilla.Lexers.LexerCoffeeScript.html</file>
       <file>eric5.QScintilla.Lexers.LexerContainer.html</file>
       <file>eric5.QScintilla.Lexers.LexerD.html</file>
       <file>eric5.QScintilla.Lexers.LexerDiff.html</file>
@@ -14286,7 +14295,6 @@
       <file>eric5.Utilities.crypto.__init__.html</file>
       <file>eric5.Utilities.crypto.py3AES.html</file>
       <file>eric5.Utilities.crypto.py3PBKDF2.html</file>
-      <file>eric5.Utilities.mimetypes.html</file>
       <file>eric5.Utilities.uic.html</file>
       <file>eric5.VCS.CommandOptionsDialog.html</file>
       <file>eric5.VCS.ProjectBrowserHelper.html</file>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric5.QScintilla.Lexers.LexerCoffeeScript.html	Sat Jun 21 22:35:36 2014 +0200
@@ -0,0 +1,143 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric5.QScintilla.Lexers.LexerCoffeeScript</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body><a NAME="top" ID="top"></a>
+<h1>eric5.QScintilla.Lexers.LexerCoffeeScript</h1>
+<p>
+Module implementing a CoffeeScript lexer with some additional methods.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#LexerJavaScript">LexerJavaScript</a></td>
+<td>Subclass to implement some additional lexer dependant methods.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="LexerJavaScript" ID="LexerJavaScript"></a>
+<h2>LexerJavaScript</h2>
+<p>
+    Subclass to implement some additional lexer dependant methods.
+</p>
+<h3>Derived from</h3>
+Lexer, QsciLexerCoffeScript
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#LexerJavaScript.__init__">LexerJavaScript</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#LexerJavaScript.defaultKeywords">defaultKeywords</a></td>
+<td>Public method to get the default keywords.</td>
+</tr><tr>
+<td><a href="#LexerJavaScript.initProperties">initProperties</a></td>
+<td>Public slot to initialize the properties.</td>
+</tr><tr>
+<td><a href="#LexerJavaScript.isCommentStyle">isCommentStyle</a></td>
+<td>Public method to check, if a style is a comment style.</td>
+</tr><tr>
+<td><a href="#LexerJavaScript.isStringStyle">isStringStyle</a></td>
+<td>Public method to check, if a style is a string style.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="LexerJavaScript.__init__" ID="LexerJavaScript.__init__"></a>
+<h4>LexerJavaScript (Constructor)</h4>
+<b>LexerJavaScript</b>(<i>parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>parent</i></dt>
+<dd>
+parent widget of this lexer
+</dd>
+</dl><a NAME="LexerJavaScript.defaultKeywords" ID="LexerJavaScript.defaultKeywords"></a>
+<h4>LexerJavaScript.defaultKeywords</h4>
+<b>defaultKeywords</b>(<i>kwSet</i>)
+<p>
+        Public method to get the default keywords.
+</p><dl>
+<dt><i>kwSet</i></dt>
+<dd>
+number of the keyword set (integer)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+string giving the keywords (string) or None
+</dd>
+</dl><a NAME="LexerJavaScript.initProperties" ID="LexerJavaScript.initProperties"></a>
+<h4>LexerJavaScript.initProperties</h4>
+<b>initProperties</b>(<i></i>)
+<p>
+        Public slot to initialize the properties.
+</p><a NAME="LexerJavaScript.isCommentStyle" ID="LexerJavaScript.isCommentStyle"></a>
+<h4>LexerJavaScript.isCommentStyle</h4>
+<b>isCommentStyle</b>(<i>style</i>)
+<p>
+        Public method to check, if a style is a comment style.
+</p><dl>
+<dt><i>style</i></dt>
+<dd>
+style to check (integer)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating a comment style (boolean)
+</dd>
+</dl><a NAME="LexerJavaScript.isStringStyle" ID="LexerJavaScript.isStringStyle"></a>
+<h4>LexerJavaScript.isStringStyle</h4>
+<b>isStringStyle</b>(<i>style</i>)
+<p>
+        Public method to check, if a style is a string style.
+</p><dl>
+<dt><i>style</i></dt>
+<dd>
+style to check (integer)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating a string style (boolean)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/index-eric5.QScintilla.Lexers.html	Sat Jun 21 18:11:38 2014 +0200
+++ b/Documentation/Source/index-eric5.QScintilla.Lexers.html	Sat Jun 21 22:35:36 2014 +0200
@@ -49,6 +49,9 @@
 <td><a href="eric5.QScintilla.Lexers.LexerCSharp.html">LexerCSharp</a></td>
 <td>Module implementing a C# lexer with some additional methods.</td>
 </tr><tr>
+<td><a href="eric5.QScintilla.Lexers.LexerCoffeeScript.html">LexerCoffeeScript</a></td>
+<td>Module implementing a CoffeeScript lexer with some additional methods.</td>
+</tr><tr>
 <td><a href="eric5.QScintilla.Lexers.LexerContainer.html">LexerContainer</a></td>
 <td>Module implementing a base class for custom lexers.</td>
 </tr><tr>
--- a/Preferences/ConfigurationPages/EditorPropertiesPage.py	Sat Jun 21 18:11:38 2014 +0200
+++ b/Preferences/ConfigurationPages/EditorPropertiesPage.py	Sat Jun 21 22:35:36 2014 +0200
@@ -42,10 +42,6 @@
         self.foldBashCommentCheckBox.setChecked(
             Preferences.getEditor("BashFoldComment"))
         
-        # CMake
-        self.cmakeFoldAtElseCheckBox.setChecked(
-            Preferences.getEditor("CMakeFoldAtElse"))
-        
         # C++
         self.foldCppCommentCheckBox.setChecked(
             Preferences.getEditor("CppFoldComment"))
@@ -77,6 +73,21 @@
         else:
             self.cppHighlightHashQuotedCheckBox.setEnabled(False)
         
+        # CMake
+        self.cmakeFoldAtElseCheckBox.setChecked(
+            Preferences.getEditor("CMakeFoldAtElse"))
+        
+        # CoffeeScript
+        if "CoffeeScript" in self.languages:
+            self.foldCoffeeScriptCommentCheckBox.setChecked(
+                Preferences.getEditor("CoffeScriptFoldComment"))
+            self.coffeeScriptDollarAllowedCheckBox.setChecked(
+                Preferences.getEditor("CoffeeScriptDollarsAllowed"))
+            self.coffeeScriptStylePreprocessorCheckBox.setChecked(
+                Preferences.getEditor("CoffeeScriptStylePreprocessor"))
+        else:
+            self.coffeeScriptGroup.setEnabled(False)
+        
         # CSS
         self.foldCssCommentCheckBox.setChecked(
             Preferences.getEditor("CssFoldComment"))
@@ -335,6 +346,23 @@
                 "CppHighlightHashQuotedStrings",
                 self.cppHighlightHashQuotedCheckBox.isChecked())
         
+        # CMake
+        Preferences.setEditor(
+            "CMakeFoldAtElse",
+            self.cmakeFoldAtElseCheckBox.isChecked())
+        
+        # CoffeeScript
+        if "CoffeeScript" in self.languages:
+            Preferences.setEditor(
+                "CoffeScriptFoldComment",
+                self.foldCoffeeScriptCommentCheckBox.isChecked())
+            Preferences.setEditor(
+                "CoffeeScriptDollarsAllowed",
+                self.coffeeScriptDollarAllowedCheckBox.isChecked())
+            Preferences.setEditor(
+                "CoffeeScriptStylePreprocessor",
+                self.coffeeScriptStylePreprocessorCheckBox.isChecked())
+        
         # CSS
         Preferences.setEditor(
             "CssFoldComment",
--- a/Preferences/ConfigurationPages/EditorPropertiesPage.ui	Sat Jun 21 18:11:38 2014 +0200
+++ b/Preferences/ConfigurationPages/EditorPropertiesPage.ui	Sat Jun 21 22:35:36 2014 +0200
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>558</width>
-    <height>2042</height>
+    <height>2611</height>
    </rect>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
@@ -198,6 +198,45 @@
     </widget>
    </item>
    <item>
+    <widget class="QGroupBox" name="coffeeScriptGroup">
+     <property name="title">
+      <string>CoffeeScript</string>
+     </property>
+     <layout class="QGridLayout" name="gridLayout_11">
+      <item row="0" column="0">
+       <widget class="QCheckBox" name="foldCoffeeScriptCommentCheckBox">
+        <property name="toolTip">
+         <string>Select whether folding of comments shall be possible</string>
+        </property>
+        <property name="text">
+         <string>Fold comments</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="QCheckBox" name="coffeeScriptDollarAllowedCheckBox">
+        <property name="toolTip">
+         <string>Select to allow '$' characters in identifier names</string>
+        </property>
+        <property name="text">
+         <string>Allow '$' in identifier names</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0">
+       <widget class="QCheckBox" name="coffeeScriptStylePreprocessorCheckBox">
+        <property name="toolTip">
+         <string>Select to style preprocessor lines</string>
+        </property>
+        <property name="text">
+         <string>Style preprocessor lines</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
     <widget class="QGroupBox" name="groupBox_4">
      <property name="title">
       <string>CSS Lexer Properties</string>
@@ -972,6 +1011,9 @@
   <tabstop>cppHighlightTripleQuotedCheckBox</tabstop>
   <tabstop>cppHighlightHashQuotedCheckBox</tabstop>
   <tabstop>cmakeFoldAtElseCheckBox</tabstop>
+  <tabstop>foldCoffeeScriptCommentCheckBox</tabstop>
+  <tabstop>coffeeScriptDollarAllowedCheckBox</tabstop>
+  <tabstop>coffeeScriptStylePreprocessorCheckBox</tabstop>
   <tabstop>foldCssCommentCheckBox</tabstop>
   <tabstop>cssHssCheckBox</tabstop>
   <tabstop>cssLessCheckBox</tabstop>
--- a/Preferences/__init__.py	Sat Jun 21 18:11:38 2014 +0200
+++ b/Preferences/__init__.py	Sat Jun 21 22:35:36 2014 +0200
@@ -349,6 +349,11 @@
         "CppHighlightTripleQuotedStrings": False,
         "CppHighlightHashQuotedStrings": False,
         
+        # CoffeeScript specifics
+        "CoffeScriptFoldComment": False,
+        "CoffeeScriptDollarsAllowed": True,
+        "CoffeeScriptStylePreprocessor": False,
+        
         # CSS specifics
         "CssFoldComment": True,
         "CssHssSupport": False,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QScintilla/Lexers/LexerCoffeeScript.py	Sat Jun 21 22:35:36 2014 +0200
@@ -0,0 +1,83 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2014 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a CoffeeScript lexer with some additional methods.
+"""
+
+from __future__ import unicode_literals
+
+from PyQt4.Qsci import QsciLexerCoffeScript
+
+from .Lexer import Lexer
+import Preferences
+
+
+class LexerJavaScript(Lexer, QsciLexerCoffeScript):
+    """
+    Subclass to implement some additional lexer dependant methods.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent parent widget of this lexer
+        """
+        QsciLexerCoffeScript.__init__(self, parent)
+        Lexer.__init__(self)
+        
+        self.commentString = "#"
+        self.streamCommentString = {
+            'start': '###\n',
+            'end': '\n###'
+        }
+
+    def initProperties(self):
+        """
+        Public slot to initialize the properties.
+        """
+        self.setDollarsAllowed(
+            Preferences.getEditor("CoffeeScriptDollarsAllowed"))
+        self.setFoldComments(
+            Preferences.getEditor("CoffeScriptFoldComment"))
+        self.setStylePreprocessor(
+            Preferences.getEditor("CoffeeScriptStylePreprocessor"))
+        self.setFoldCompact(
+            Preferences.getEditor("AllFoldCompact"))
+    
+    def isCommentStyle(self, style):
+        """
+        Public method to check, if a style is a comment style.
+        
+        @param style style to check (integer)
+        @return flag indicating a comment style (boolean)
+        """
+        return style in [QsciLexerCoffeScript.Comment,
+                         QsciLexerCoffeScript.CommentDoc,
+                         QsciLexerCoffeScript.CommentLine,
+                         QsciLexerCoffeScript.CommentLineDoc,
+                         QsciLexerCoffeScript.CommentBlock,
+                         QsciLexerCoffeScript.BlockRegexComment]
+    
+    def isStringStyle(self, style):
+        """
+        Public method to check, if a style is a string style.
+        
+        @param style style to check (integer)
+        @return flag indicating a string style (boolean)
+        """
+        return style in [QsciLexerCoffeScript.DoubleQuotedString,
+                         QsciLexerCoffeScript.SingleQuotedString,
+                         QsciLexerCoffeScript.UnclosedString,
+                         QsciLexerCoffeScript.VerbatimString]
+    
+    def defaultKeywords(self, kwSet):
+        """
+        Public method to get the default keywords.
+        
+        @param kwSet number of the keyword set (integer)
+        @return string giving the keywords (string) or None
+        """
+        return QsciLexerCoffeScript.keywords(self, kwSet)
--- a/QScintilla/Lexers/__init__.py	Sat Jun 21 18:11:38 2014 +0200
+++ b/QScintilla/Lexers/__init__.py	Sat Jun 21 22:35:36 2014 +0200
@@ -157,6 +157,11 @@
             [QApplication.translate('Lexers', "Gettext"), 'dummy.po',
              "lexerGettext.png"]
     
+    if QSCINTILLA_VERSION() >= 0x020803:
+        supportedLanguages["CoffeeScript"] = \
+            [QApplication.translate('Lexers', "CoffeeScript"), 'dummy.coffee',
+             "lexerCoffeeScript.png"]
+    
     for name in LexerRegistry:
         if not name.startswith("Pygments|"):
             supportedLanguages[name] = \
@@ -299,6 +304,9 @@
             elif language == "Gettext":
                 from .LexerPO import LexerPO
                 return LexerPO(parent)
+            elif language == "CoffeeScript":
+                from .LexerCoffeeScript import LexerCoffeeScript
+                return LexerCoffeeScript(parent)
             
             elif language in LexerRegistry:
                 return LexerRegistry[language][2](parent)
@@ -472,6 +480,13 @@
                 'Gettext Files (*.po)'),
         )
     
+    if QSCINTILLA_VERSION() >= 0x020803:
+        openFileFiltersList.append(
+            QApplication.translate(
+                'Lexers',
+                'CoffeeScript Files (*.coffee)'),
+        )
+    
     for name in LexerRegistry:
         openFileFiltersList.extend(LexerRegistry[name][3])
     
@@ -670,6 +685,13 @@
                 'Gettext Files (*.po)'),
         )
     
+    if QSCINTILLA_VERSION() >= 0x020803:
+        saveFileFiltersList.append(
+            QApplication.translate(
+                'Lexers',
+                'CoffeeScript Files (*.coffee)'),
+        )
+    
     for name in LexerRegistry:
         saveFileFiltersList.extend(LexerRegistry[name][4])
     
@@ -824,8 +846,8 @@
             '*.m.octave': "Octave",
         })
     
-    if QSCINTILLA_VERSION() >= 0x020802:
-        assocs['*.po'] = "Gettext"
+    if QSCINTILLA_VERSION() >= 0x020803:
+        assocs['*.coffee'] = "CoffeeScript"
     
     for name in LexerRegistry:
         for pattern in LexerRegistry[name][5]:
--- a/changelog	Sat Jun 21 18:11:38 2014 +0200
+++ b/changelog	Sat Jun 21 22:35:36 2014 +0200
@@ -25,6 +25,8 @@
      to be done via the configuration dialog)
   -- added support for the QScintilla Gettext lexer (QsciLexerPO) as of
      QScintilla 2.8.2
+  -- added support for the QScintilla CoffeeScript lexer
+     (QsciLexerCoffeeScript) as of QScintilla 2.8.3
 - Multi Project
   -- added support for the categorisation of projects and changed the
      multi project file format
--- a/eric5.e4p	Sat Jun 21 18:11:38 2014 +0200
+++ b/eric5.e4p	Sat Jun 21 22:35:36 2014 +0200
@@ -1148,6 +1148,7 @@
     <Source>ThirdParty/Send2Trash/send2trash/plat_other.py</Source>
     <Source>ThirdParty/Send2Trash/send2trash/compat.py</Source>
     <Source>ThirdParty/Send2Trash/send2trash/plat_gio.py</Source>
+    <Source>QScintilla/Lexers/LexerCoffeeScript.py</Source>
   </Sources>
   <Forms>
     <Form>PyUnit/UnittestDialog.ui</Form>

eric ide

mercurial