diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp index 26a46bec2525c78d80779ae75ed4be9c5e0f29df..def167768de2dccaa3ac98853118eaa78dcd6b6c 100644 --- a/src/plugins/qmljseditor/qmljseditor.cpp +++ b/src/plugins/qmljseditor/qmljseditor.cpp @@ -485,9 +485,6 @@ QmlJSTextEditor::~QmlJSTextEditor() { } -QList<Declaration> QmlJSTextEditor::declarations() const -{ return m_declarations; } - Core::IEditor *QmlJSEditorEditable::duplicate(QWidget *parent) { QmlJSTextEditor *newEditor = new QmlJSTextEditor(parent); @@ -552,37 +549,34 @@ void QmlJSTextEditor::onDocumentUpdated(QmlJS::Document::Ptr doc) FindIdDeclarations updateIds; sem.idLocations = updateIds(doc); - m_semanticInfo = sem; - if (doc->isParsedCorrectly()) { FindDeclarations findDeclarations; - m_declarations = findDeclarations(doc->ast()); + sem.declarations = findDeclarations(doc->ast()); QStringList items; items.append(tr("<Select Symbol>")); - foreach (Declaration decl, m_declarations) + foreach (Declaration decl, sem.declarations) items.append(decl.text); m_methodCombo->clear(); m_methodCombo->addItems(items); updateMethodBoxIndex(); } + + m_semanticInfo = sem; } QList<QTextEdit::ExtraSelection> selections; - QTextEdit::ExtraSelection sel; - - const QList<DiagnosticMessage> diagnosticMessages = doc->diagnosticMessages(); - - foreach (const DiagnosticMessage &d, diagnosticMessages) { + foreach (const DiagnosticMessage &d, doc->diagnosticMessages()) { if (d.isWarning()) continue; const int line = d.loc.startLine; const int column = qMax(1U, d.loc.startColumn); + QTextEdit::ExtraSelection sel; QTextCursor c(document()->findBlockByNumber(line - 1)); sel.cursor = c; @@ -604,8 +598,8 @@ void QmlJSTextEditor::onDocumentUpdated(QmlJS::Document::Ptr doc) void QmlJSTextEditor::jumpToMethod(int index) { - if (index) { - Declaration d = m_declarations.at(index - 1); + if (index > 0 && index <= m_semanticInfo.declarations.size()) { // indexes are 1-based + Declaration d = m_semanticInfo.declarations.at(index - 1); gotoLine(d.startLine, d.startColumn - 1); setFocus(); } @@ -619,8 +613,8 @@ void QmlJSTextEditor::updateMethodBoxIndex() int currentSymbolIndex = 0; int index = 0; - while (index < m_declarations.size()) { - const Declaration &d = m_declarations.at(index++); + while (index < m_semanticInfo.declarations.size()) { + const Declaration &d = m_semanticInfo.declarations.at(index++); if (line < d.startLine) break; @@ -691,16 +685,6 @@ void QmlJSTextEditor::renameIdUnderCursor() } } -QStringList QmlJSTextEditor::keywords() const -{ - QStringList words; - - if (QmlHighlighter *highlighter = qobject_cast<QmlHighlighter*>(baseTextDocument()->syntaxHighlighter())) - words = highlighter->keywords().toList(); - - return words; -} - void QmlJSTextEditor::setFontSettings(const TextEditor::FontSettings &fs) { TextEditor::BaseTextEditor::setFontSettings(fs); diff --git a/src/plugins/qmljseditor/qmljseditor.h b/src/plugins/qmljseditor/qmljseditor.h index a5218b8b093cd6d0992f53bee73cf02bca94b0f3..0c2bb2820403d3c389a4fd12f960117795580ea5 100644 --- a/src/plugins/qmljseditor/qmljseditor.h +++ b/src/plugins/qmljseditor/qmljseditor.h @@ -113,6 +113,7 @@ public: // attributes QmlJS::Document::Ptr document; QList<Range> ranges; QHash<QString, QList<QmlJS::AST::SourceLocation> > idLocations; + QList<Declaration> declarations; }; class QmlJSTextEditor : public TextEditor::BaseTextEditor @@ -125,9 +126,6 @@ public: QmlJSTextEditor(QWidget *parent = 0); ~QmlJSTextEditor(); - QList<Declaration> declarations() const; - QStringList keywords() const; - virtual void unCommentSelection(); SemanticInfo semanticInfo() const { return m_semanticInfo; } @@ -175,7 +173,6 @@ private: QTimer *m_updateDocumentTimer; QTimer *m_updateUsesTimer; QComboBox *m_methodCombo; - QList<Declaration> m_declarations; // ### remove me QmlModelManagerInterface *m_modelManager; QmlJS::TypeSystem *m_typeSystem; QTextCharFormat m_occurrencesFormat;