module dlangide.tools.editorTool;



import dlangui.widgets.editors;
import dlangui.core.types;
import dlangide.ui.frame;
import dlangide.ui.dsourceedit;

public import dlangide.tools.d.deditorTool;

class EditorTool
{
	this(IDEFrame frame) {
		_frame = frame;
	}
	//Since files might be unsaved, we must send all the text content.
	abstract bool goToDefinition(DSourceEdit editor, TextPosition caretPosition);
	abstract dstring[] getCompletions(DSourceEdit editor, TextPosition caretPosition);

	protected IDEFrame _frame;
	
}

class DefaultEditorTool : EditorTool
{
    this(IDEFrame frame) {
        super(frame);
    }
    
    override bool goToDefinition(DSourceEdit editor, TextPosition caretPosition) {
        assert(0); //Go To Definition should not be called for normal files.
    }
    
    override dstring[] getCompletions(DSourceEdit editor, TextPosition caretPosition) {
        assert(0);
    }
}