Make the "sort selection" tool do something.

* Handle <input> tag.
* Pass input to running process.
* Search for executable in path.
* Add "CurrentSelection" variable.

Remaining issue: ReplaceSelection output handling.
This commit is contained in:
con
2010-12-09 14:57:22 +01:00
parent 6c69638711
commit 10b6b2936b
6 changed files with 66 additions and 13 deletions

View File

@@ -50,6 +50,7 @@
#include <coreplugin/icore.h>
#include <coreplugin/coreconstants.h>
#include <coreplugin/mimedatabase.h>
#include <coreplugin/variablemanager.h>
#include <coreplugin/actionmanager/actionmanager.h>
#include <coreplugin/actionmanager/command.h>
#include <coreplugin/editormanager/editormanager.h>
@@ -175,6 +176,9 @@ void TextEditorPlugin::extensionsInitialized()
addAutoReleasedObject(new FindInFiles(Find::SearchResultWindow::instance()));
addAutoReleasedObject(new FindInCurrentFile(Find::SearchResultWindow::instance()));
connect(Core::VariableManager::instance(), SIGNAL(variableUpdateRequested(QString)),
this, SLOT(updateVariable(QString)));
}
void TextEditorPlugin::initializeEditor(PlainTextEditor *editor)
@@ -208,4 +212,19 @@ void TextEditorPlugin::updateSearchResultsFont(const FontSettings &settings)
settings.fontSize() * settings.fontZoom() / 100));
}
void TextEditorPlugin::updateVariable(const QString &variable)
{
static const char * const kCurrentSelectionVar = "CurrentSelection";
if (variable == QLatin1String(kCurrentSelectionVar)) {
QString selectedText;
Core::IEditor *iface = Core::EditorManager::instance()->currentEditor();
ITextEditor *editor = qobject_cast<ITextEditor *>(iface);
if (editor) {
selectedText = editor->selectedText();
selectedText.replace(QChar::ParagraphSeparator, QLatin1String("\n"));
}
Core::VariableManager::instance()->insert(variable, selectedText);
}
}
Q_EXPORT_PLUGIN(TextEditorPlugin)