Commit Graph

50 Commits

Author SHA1 Message Date
Ulf Hermann
3d21c7fdc3 Retain ".pragma library" when reformatting JavaScript files
For ".pragma library" there is a special flag in QmlJS::Directives.
We just need to actually set the flag and query it when re-emitting the
code.

Change-Id: Ia3455fda18aba3219b02ecf092bb28987a6ccef5
Fixes: QTCREATORBUG-22326
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2019-10-10 14:05:18 +00:00
Tim Jenssen
a3fb2051ad QmlJS: Fix code re-formatter for property
Fixes: QTCREATORBUG-22515
Change-Id: Ie560f8cf9e43081a37f2210ea2f6df741f14ced6
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2019-06-20 08:19:10 +00:00
Uladzislau Paulovich
798879c797 qml | Fix pragma reformatting
After this change reformatter test (tests/auto/qml/reformatter/tst_reformatter)
starts to work correctly for singleton example (qmlsingleton.qml)
NOTE: Just cherry-picking change from master branch.

Change-Id: Ia0561aa8b920fc5c62a8dea93341721f37b68dd8
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
(cherry picked from commit 749eaaad81)
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-06-12 13:35:11 +00:00
Uladzislau Paulovich
70fecd518e qml | Fix functions and loops formatting
Bugs fixed in this change:

1. Incorrect function arguments formatting:
function(a, b, c) -> function(abc)
2. Incorrect foreach loop formatting:
for (var a in b) -> for (a in b)
3. Incorrect for loop formatting:
for (var a = 1; a < 100; ++a) -> for(; a < 100; ++a)

Change-Id: I8afef6e5f2485a2225931b7ecb7210506e06dc6c
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-06-11 15:23:42 +00:00
Uladzislau Paulovich
8f7cbd6416 qml | Fix trailing comments formatting
Change-Id: I0461c4616cff15b7010e3844850d32e9f07469ea
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-06-11 15:23:17 +00:00
Uladzislau Paulovich
8dc16d55c2 qml | Fix empty objects formatting
Change-Id: I760f3420fef9ca83c2a28586575a72d580658d0f
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-06-11 15:22:36 +00:00
Uladzislau Paulovich
ab87bdf4ea qml | Add support for enums formatting
Change-Id: Id7e435a7c556c7fc469b9055ca772a7850e16676
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2019-06-11 10:04:29 +00:00
Uladzislau Paulovich
69cd74f25d qml | Fix let/const variables formatting
Change-Id: Ia2a4ee482e84a6c24abea7ea6fe05925eee11d1d
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2019-06-11 10:03:57 +00:00
Thomas Hartmann
b7753ac86a QmlJS: Fix code re-formatter for arrays
Task-number: QTCREATORBUG-22026
Change-Id: Iae9e53b149ebfbbe904fc1aef8408b1f6f852a13
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2019-04-03 13:53:09 +00:00
Marco Benelli
4646acad0d qmljs: update parser
Update the qtcreator qmljs parser to the
one of Qt 5.12. It supports EcmaScript 7.

Task-number: QTCREATORBUG-20341
Change-Id: I0d1cff71402ba17e22cde6b46c65614e162280de
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
2018-11-22 11:21:32 +00:00
Eike Ziller
4c914c6b43 Merge remote-tracking branch 'origin/4.7'
Change-Id: I562b0b8afb98940e03b67cbd7d7c3e756b77d736
2018-09-14 09:59:48 +02:00
Marco Benelli
c1a761a225 qmljs: fix bug in reformatting
Reformatting multi-line comments caused, in some cases, the deletion
of the preceding line.

Task-number: QTCREATORBUG-21036
Change-Id: I9bf9627e5992e9821c0dd62a13601a3ca6367e65
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2018-09-11 11:57:22 +00:00
Eike Ziller
5c81a65422 Merge remote-tracking branch 'origin/4.7'
Conflicts:
	qbs/modules/qtc/qtc.qbs
	qtcreator.pri

Change-Id: I29916313f12e25f3942ac926f8e4d4490074978e
2018-07-05 11:14:33 +02:00
Marco Benelli
067a7e903e QmlJs: avoid adding unnecessary lines in reformatting
The reformatter used to add unnecessary empty lines, notably before
comments after import declarations.

Task-number: QTCREATORBUG-18332
Change-Id: I96d6f2dd53d1197aa6bc0b834971a66861b2f498
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
2018-06-29 09:13:13 +00:00
Alessandro Portale
4b13170565 qmljs: Use C++11’s override and remove virtual where applicable
Fixes warning: prefer using 'override' or (rarely) 'final' instead of
'virtual' [modernize-use-override]

Change-Id: I17955fd0fdb052678228f1bda32cd8d3b4298998
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
2018-06-26 10:38:38 +00:00
Marco Benelli
d7f431482d qmljs: handle js directives .pragma and .import
The directives .pragma and .import are not included in the AST.
Their source code locations are not stored in any other place.
As a result, when reformatting the source, they simply disappear.

This patch keep track of their source code locations, so they are
not removed when reformatting the source code.
This patch contains also some modification in the lexer that should
probably be ported to the qtdeclarative version.

Task-number: QTCREATORBUG-13038
Change-Id: I5d568abf02d37a584d4d246939736aaec5af5053
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2018-04-12 10:49:46 +00:00
Marco Benelli
a874cf581d Qml/js reformatter: use quotes in objects literals
The reformatter used to remove the quotes that wraps the property name
in object literals.  This causes problem when the name is not a
valid identifier, resulting in that valid code become invalid after
reformatting.
This patch forces wrapping of property's name in quotes: in this way,
the reformatted code is consistent and it never get invalidated.

However the resulting formatted code is not consisted with the one
formatted by previous versions.

Task-number: QTCREATORBUG-17455
Change-Id: I1e361102819055de210d6c81020f204c08aaa253
Reviewed-by: Markus Maier <markus.maier.sw@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-04-05 06:50:03 +00:00
Marco Benelli
d600bae736 QmlJs: better indentation for switch common cases
Do not add an empty line between common cases in a `switch` block,
according the best practices for javascript style.

Task-number: QTCREATORBUG-18515
Change-Id: I8b665eabb9b1d5b617d608e430e8b9137dc32032
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2017-09-19 08:04:50 +00:00
Marco Benelli
6f7aa1f962 QmlJS: user defined style in reformatting file
The size of tabs and indentation used to be ignored when reformatting
a file.

Task-number: QTCREATORBUG-12849
Change-Id: I0b522b526a199c6397b78b5e193159ec52fc941a
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2017-09-18 06:58:35 +00:00
Robert Loehning
74d14d0092 QmlJs: Initialize members
Change-Id: I15a3ec660608266595a8b7a12b59016cc28331af
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2017-08-11 10:34:00 +00:00
Marco Benelli
d0823cd5e2 QmlJs: fix reformatting of 'signal' statements
Reformatting 'signal' preceded by comments used to bring to a bad
formatted file.

Task-number: QTCREATORBUG-17886
Change-Id: I02e093a4721cd1e75d45b498ea768251aee88ea4
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-04-07 05:32:20 +00:00
Marco Benelli
1134c097e2 QmlJs: reformatter for multiline-comments
Fix a reformatter bug that causes wrog indentation of multiline
comments.

Task-number: QTCREATORBUG-17426
Change-Id: I05493638dda0a353f5901fd95f06dc2e8e020237
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
2017-01-31 09:55:37 +00:00
Thomas Hartmann
95366d25e0 QmlJS: Fix crash in QML reformatter
This fixes a tack overflow caused by an exponential
number of combination tested.

We try to find the optimal solution for line breaks by brute force.
Unfortunately this leads to a stack overflow, if two many
line breaks are possible.

This patch limits the number of possible line break positions to 11.
If there are more possible line breaks we remove every second one.

This seems to be a reasonable enough heuristic and we deal with
a corner case anyway.

Task-number: QTCREATORBUG-17331
Change-Id: I1b80fc3eaa0e148aec30fc57ac75824181f2d883
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
2016-11-30 08:30:29 +00:00
Victor Heng
11ef0db2fd QmlJS: Keep pragma directive when reformatting QML files
Change-Id: I1f11e95565a90e4fc7b908c03d49f6abbd37b8be
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
2016-05-19 09:55:11 +00:00
Sune Vuorela
55bfa4401f Keep readonly qualifier
Let's not reformat readonly qualifiers away. They are likely there for a
reason.

Task-number: QTCREATORBUG-15745
Change-Id: Iaab7a8edb47fccd0cf36759750500a93be45bbc2
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Marco Benelli <marco.benelli@theqtcompany.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2016-04-13 07:59:44 +00:00
Tobias Hunger
f72370f20a Update License according to agreement with Free Qt Foundation
* Update remaining files in src

Change-Id: I1896f17fcf34f71c3310c87899fb5171b8e4afb1
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-19 15:59:41 +00:00
Marco Benelli
a8d1df2c0c QmlJs: fixed a regression in reformatter.
The commit b26920c3a3 introduced a bug
in reformatting properties lacking an object initializer.

Change-Id: I30f9c9c8a005660e7af4a6c97d0b1ff1be461548
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-11-02 14:26:40 +00:00
Marco Benelli
b26920c3a3 Fixed bug in reformatting QML code (duplicated property name).
Change-Id: I1af68aa979fbbc38edd0255c346b9df371c8fd26
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2015-10-30 10:03:36 +00:00
Thiago Macieira
5113713128 Remove unused function
Found by ICC
qmljsreformatter.cpp(410): warning #177: function "<unnamed>::Rewriter::firstOnLine" was declared but never referenced

Change-Id: I7de033f80b0e4431b7f1ffff13fa77233116f0cb
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Marco Benelli <marco.benelli@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2015-08-17 16:25:58 +00:00
Friedemann Kleint
1b9be30371 Clean headers in lib qmljs and plugins qmljstools, qmljseditor.
Change-Id: I3256db8f4d42b6326d986d754b45e6c6c2030839
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2015-03-05 08:17:10 +00:00
Eike Ziller
3c85058694 Update License
Change-Id: I711d5fb475ef814a1dc9d2822740e827f3f67125
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
2015-01-16 12:37:56 +01:00
Eike Ziller
ea27143239 Merge remote-tracking branch 'origin/3.2'
Conflicts:
	src/libs/utils/ipaddresslineedit.cpp
	src/libs/utils/logging.h
	src/plugins/analyzerbase/AnalyzerBase.pluginspec.in
	src/plugins/android/Android.pluginspec.in
	src/plugins/android/androiddeploystep.cpp
	src/plugins/android/androiddeploystep.h
	src/plugins/android/androiddeploystepfactory.cpp
	src/plugins/android/androiddeploystepwidget.cpp
	src/plugins/android/androidpackagecreationfactory.cpp
	src/plugins/android/androidpackagecreationstep.cpp
	src/plugins/android/androidpackagecreationstep.h
	src/plugins/android/androidpackagecreationwidget.cpp
	src/plugins/android/androidpackagecreationwidget.h
	src/plugins/android/javafilewizard.cpp
	src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.pluginspec.in
	src/plugins/baremetal/BareMetal.pluginspec.in
	src/plugins/bazaar/Bazaar.pluginspec.in
	src/plugins/beautifier/Beautifier.pluginspec.in
	src/plugins/bineditor/BinEditor.pluginspec.in
	src/plugins/bookmarks/Bookmarks.pluginspec.in
	src/plugins/clangcodemodel/ClangCodeModel.pluginspec.in
	src/plugins/clangcodemodel/clanghighlightingsupport.cpp
	src/plugins/clangcodemodel/clangsymbolsearcher.cpp
	src/plugins/classview/ClassView.pluginspec.in
	src/plugins/clearcase/ClearCase.pluginspec.in
	src/plugins/cmakeprojectmanager/CMakeProjectManager.pluginspec.in
	src/plugins/cmakeprojectmanager/cmakeeditorfactory.cpp
	src/plugins/cmakeprojectmanager/cmakehighlighter.cpp
	src/plugins/coreplugin/Core.pluginspec.in
	src/plugins/cpaster/CodePaster.pluginspec.in
	src/plugins/cppeditor/CppEditor.pluginspec.in
	src/plugins/cppeditor/cppfilewizard.cpp
	src/plugins/cpptools/CppTools.pluginspec.in
	src/plugins/cpptools/cpphighlightingsupportinternal.cpp
	src/plugins/cpptools/cppmodelmanagerinterface.cpp
	src/plugins/cpptools/cppmodelmanagerinterface.h
	src/plugins/cvs/CVS.pluginspec.in
	src/plugins/debugger/Debugger.pluginspec.in
	src/plugins/designer/Designer.pluginspec.in
	src/plugins/diffeditor/DiffEditor.pluginspec.in
	src/plugins/emacskeys/EmacsKeys.pluginspec.in
	src/plugins/fakevim/FakeVim.pluginspec.in
	src/plugins/genericprojectmanager/GenericProjectManager.pluginspec.in
	src/plugins/git/Git.pluginspec.in
	src/plugins/git/gitorious/gitorious.cpp
	src/plugins/git/gitorious/gitorious.h
	src/plugins/git/gitorious/gitoriousclonewizard.cpp
	src/plugins/git/gitorious/gitorioushostwidget.cpp
	src/plugins/git/gitorious/gitorioushostwidget.h
	src/plugins/git/gitorious/gitorioushostwizardpage.cpp
	src/plugins/git/gitorious/gitoriousprojectwidget.cpp
	src/plugins/git/gitorious/gitoriousprojectwidget.h
	src/plugins/git/gitorious/gitoriousprojectwizardpage.cpp
	src/plugins/git/gitorious/gitoriousprojectwizardpage.h
	src/plugins/git/gitorious/gitoriousrepositorywizardpage.cpp
	src/plugins/git/gitorious/gitoriousrepositorywizardpage.h
	src/plugins/glsleditor/GLSLEditor.pluginspec.in
	src/plugins/glsleditor/glsleditorfactory.cpp
	src/plugins/glsleditor/glslfilewizard.cpp
	src/plugins/helloworld/HelloWorld.pluginspec.in
	src/plugins/help/Help.pluginspec.in
	src/plugins/imageviewer/ImageViewer.pluginspec.in
	src/plugins/ios/Ios.pluginspec.in
	src/plugins/macros/Macros.pluginspec.in
	src/plugins/mercurial/Mercurial.pluginspec.in
	src/plugins/perforce/Perforce.pluginspec.in
	src/plugins/projectexplorer/ProjectExplorer.pluginspec.in
	src/plugins/pythoneditor/PythonEditor.pluginspec.in
	src/plugins/pythoneditor/pythoneditorwidget.cpp
	src/plugins/pythoneditor/wizard/pythonfilewizard.cpp
	src/plugins/qbsprojectmanager/QbsProjectManager.pluginspec.in
	src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp
	src/plugins/qmakeprojectmanager/QmakeProjectManager.pluginspec.in
	src/plugins/qmakeprojectmanager/profileeditorfactory.cpp
	src/plugins/qmldesigner/QmlDesigner.pluginspec.in
	src/plugins/qmljseditor/QmlJSEditor.pluginspec.in
	src/plugins/qmljseditor/qmljseditorfactory.cpp
	src/plugins/qmljstools/QmlJSTools.pluginspec.in
	src/plugins/qmlprofiler/QmlProfiler.pluginspec.in
	src/plugins/qmlprojectmanager/QmlProjectManager.pluginspec.in
	src/plugins/qnx/Qnx.pluginspec.in
	src/plugins/qtsupport/QtSupport.pluginspec.in
	src/plugins/remotelinux/RemoteLinux.pluginspec.in
	src/plugins/resourceeditor/ResourceEditor.pluginspec.in
	src/plugins/resourceeditor/resourcewizard.h
	src/plugins/subversion/Subversion.pluginspec.in
	src/plugins/tasklist/TaskList.pluginspec.in
	src/plugins/texteditor/TextEditor.pluginspec.in
	src/plugins/texteditor/basetexteditor_p.h
	src/plugins/texteditor/basetextmark.cpp
	src/plugins/texteditor/codeassist/basicproposalitemlistmodel.h
	src/plugins/texteditor/codeassist/defaultassistinterface.h
	src/plugins/texteditor/codeassist/iassistproposalitem.cpp
	src/plugins/texteditor/itexteditor.cpp
	src/plugins/texteditor/itexteditor.h
	src/plugins/texteditor/itextmark.cpp
	src/plugins/texteditor/plaintexteditor.cpp
	src/plugins/texteditor/plaintexteditor.h
	src/plugins/texteditor/texteditoractionhandler.cpp
	src/plugins/todo/Todo.pluginspec.in
	src/plugins/updateinfo/UpdateInfo.pluginspec.in
	src/plugins/valgrind/Valgrind.pluginspec.in
	src/plugins/vcsbase/VcsBase.pluginspec.in
	src/plugins/welcome/Welcome.pluginspec.in
	src/plugins/winrt/WinRt.pluginspec.in
	tests/auto/debugger/temporarydir.h

Change-Id: I254af8be8119fe9855287909e17d4b8ca9d2fc2f
2014-10-14 15:36:16 +02:00
Eike Ziller
8295b503be License update
Change-Id: I3c22ef2685d7aa589f5d0ab74d693653a4c32082
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
2014-10-09 11:41:44 +02:00
hjk
6431ab2c79 Use Qt 5's QStringList::join(QChar)
Less typing and less cycles than join(QString) where appropriate

Change-Id: I6ebc0e17e4d7fd9845864dd95b7de4ba4dad6906
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-08-25 08:21:14 +02:00
Fawzi Mohamed
4dc438db5e qmljs: switch to the new category logging
Change-Id: Id4e43779590939e9d6dd2d0dab536f70e721f097
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-07-01 11:31:12 +02:00
Robert Loehning
746c5d8863 Incremented year in copyright info
Change-Id: Ib5423fdd064e4546f848c0b640b0ed0514c26d3a
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-01-08 08:29:47 +01:00
Thiago Macieira
5fd58a3252 Remove function acceptIndented that is not used anywhere
Found by ICC:
warning #177: function "<unnamed>::Rewriter::acceptIndented" was
declared but never referenced

Change-Id: I37892d021a4ca9886fd35fea00102d44fa99320f
Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2013-12-06 22:07:02 +01:00
Fawzi Mohamed
e9c97aa1d1 qmljs: use new qml parser
adds support for singleton and getter/setter properties

Change-Id: Ia6691ac7799a46885db0df44617617dcc3c13189
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2013-11-06 17:06:15 +01:00
Orgad Shaneh
ad9e7ccab6 Fix coding style for else statements
Change-Id: I1309db70e98d678e150388c76ce665e988fdf081
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-07-17 11:11:25 +02:00
Friedemann Kleint
7dce2f9899 Clean headers in QmlJs.
Ran script to remove inludes on a trial-and-error basis and
manually corrected it (Parser excluded).

Change-Id: I5ec6e1076430009bb72094411b2c3386f8bea548
Reviewed-by: Aurindam Jana <aurindam.jana@digia.com>
2013-04-04 10:08:07 +02:00
Oswald Buddenhagen
1fda2111d4 Merge remote-tracking branch 'origin/2.6'
Conflicts:
	src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.pluginspec.in
	src/plugins/debugger/qtmessageloghandler.cpp
	src/plugins/debugger/qtmessagelogwindow.cpp
	src/plugins/madde/maemodeployconfigurationwidget.cpp
	src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp
	src/plugins/qmldesigner/designercore/include/widgetqueryview.h
	src/plugins/qmldesigner/designercore/metainfo/metainfoparser.cpp
	src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp
	src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.h
	src/plugins/qmlprojectmanager/qmlprojectapplicationwizard.cpp
	src/plugins/qnx/bardescriptormagicmatcher.h
	src/plugins/qt4projectmanager/profilekeywords.cpp
	src/plugins/remotelinux/deployablefilesperprofile.cpp
	src/plugins/remotelinux/deployablefilesperprofile.h
	src/plugins/remotelinux/deploymentinfo.cpp
	src/plugins/remotelinux/deploymentsettingsassistant.cpp
	src/plugins/remotelinux/profilesupdatedialog.cpp
	tests/auto/icheckbuild/ichecklib.cpp
	tests/auto/icheckbuild/parsemanager.cpp
	tests/auto/icheckbuild/parsemanager.h

Change-Id: Ie465a578446a089e1c502d1cb1096e84ca058104
2013-01-31 16:25:33 +01:00
Robert Loehning
298531e370 Incremented year in copyright info
Change-Id: Ic6a9ff0359625021ebc061d22db6811814534205
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2013-01-29 16:27:03 +01:00
Orgad Shaneh
29a93998df Remove braces for single lines of conditions
#!/usr/bin/env ruby

Dir.glob('**/*.cpp') { |file|
  # skip ast (excluding paste, astpath, and canv'ast'imer)
  next if file =~ /ast[^eip]|keywords\.|qualifiers|preprocessor|names.cpp/i
  s = File.read(file)
  next if s.include?('qlalr')
  orig = s.dup
  s.gsub!(/\n *if [^\n]*{\n[^\n]*\n\s+}(\s+else if [^\n]* {\n[^\n]*\n\s+})*(\s+else {\n[^\n]*\n\s+})?\n/m) { |m|
    res = $&
    if res =~ /^\s*(\/\/|[A-Z_]{3,})/ # C++ comment or macro (Q_UNUSED, SDEBUG), do not touch braces
      res
    else
      res.gsub!('} else', 'else')
      res.gsub!(/\n +} *\n/m, "\n")
      res.gsub(/ *{$/, '')
    end
  }
  s.gsub!(/ *$/, '')
  File.open(file, 'wb').write(s) if s != orig
}

Change-Id: I3b30ee60df0986f66c02132c65fc38a3fbb6bbdc
Reviewed-by: hjk <qthjk@ovi.com>
2013-01-08 10:48:18 +01:00
Orgad Shaneh
5ea0937167 QmlJS: Compile with QT_NO_CAST_FROM_ASCII
Change-Id: I0c5654a978f47a4db5428936fd44633f21394830
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2012-11-28 11:11:47 +01:00
Thomas Hartmann
880ab20751 QmlJS: Fix rewriter for signal parameters
Task-number: QTCREATORBUG-7931

I had to fix a bug in the QmlJsParser.
The source location for the
propertyTypeToken was not initialized in all cases.

I also updated qmljs.g.

Change-Id: Idd0880f70578867cf5f97666aede654e00cfc744
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Christian Kamm <kamm@incasoftware.de>
2012-10-08 10:27:02 +02:00
hjk
386ca7c8dd Adjust license headers
Change-Id: Ice592c6de9951ee3b2c4cb52ed0bb3b6770e0825
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2012-10-05 17:12:56 +02:00
Erik Verbruggen
3fa55b7ab9 Removed module names from #include directives.
Getting the #include directives ready for Qt5. This includes the
new-project wizards.

Change-Id: Ia9261f1e8faec06b9285b694d2b7e9a095978d2b
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
2012-02-15 16:24:46 +01:00
hjk
2931a499e6 Long live the king!
Change-Id: I2b72b34c0cfeafc8bdbaf49b83ff723544f2b6e2
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-01-26 19:55:36 +01:00
Christian Kamm
a24c49720a QmlJS reformatter: Fix object literals.
The comma token seems to be invalid.

Change-Id: I859fa58ba0ba1e975e0cf1105c2b53aac848fb0d
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
2011-11-30 10:11:28 +01:00
Christian Kamm
a5b26a32b3 QmlJS: Add 'reformat' action which regenerates the whole file.
Change-Id: I0aed6c6e197e122200d720eb9291a083095a6299
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
2011-11-15 11:31:40 +01:00