some completion fixes

cvs 0.63
Slava Pestov 2004-08-17 04:03:40 +00:00
parent a31b221ed4
commit 62c8a981a8
2 changed files with 32 additions and 5 deletions

View File

@ -29,6 +29,7 @@
package factor.jedit; package factor.jedit;
import factor.*;
import java.util.*; import java.util.*;
import javax.swing.ListCellRenderer; import javax.swing.ListCellRenderer;
import org.gjt.sp.jedit.textarea.*; import org.gjt.sp.jedit.textarea.*;
@ -53,8 +54,21 @@ public class FactorCompletion extends SideKickCompletion
this.data = data; this.data = data;
} //}}} } //}}}
public String getLongestPrefix()
{
return "";
}
public void insert(int index) public void insert(int index)
{ {
Macros.Recorder recorder = view.getMacroRecorder();
String insert = ((FactorWord)get(index)).name.substring(
word.length());
if(recorder != null)
recorder.recordInput(insert,false);
textArea.setSelectedText(insert);
} }
public int getTokenLength() public int getTokenLength()
@ -64,7 +78,23 @@ public class FactorCompletion extends SideKickCompletion
public boolean handleKeystroke(int selectedIndex, char keyChar) public boolean handleKeystroke(int selectedIndex, char keyChar)
{ {
return false; Macros.Recorder recorder = view.getMacroRecorder();
boolean ws = (ReadTable.DEFAULT_READTABLE
.getCharacterType(keyChar)
== ReadTable.WHITESPACE);
if(ws)
insert(selectedIndex);
if(keyChar != '\n')
{
if(recorder != null)
recorder.recordInput(1,keyChar,false);
textArea.userInput(keyChar);
}
return !ws;
} }
public ListCellRenderer getRenderer() public ListCellRenderer getRenderer()

View File

@ -172,10 +172,7 @@ public class FactorSideKickParser extends SideKickParser
SideKickParsedData _data = SideKickParsedData SideKickParsedData _data = SideKickParsedData
.getParsedData(editPane.getView()); .getParsedData(editPane.getView());
if(!(_data instanceof FactorParsedData)) if(!(_data instanceof FactorParsedData))
{
System.err.println("exit 1");
return null; return null;
}
FactorParsedData data = (FactorParsedData)_data; FactorParsedData data = (FactorParsedData)_data;
Buffer buffer = editPane.getBuffer(); Buffer buffer = editPane.getBuffer();
@ -192,7 +189,7 @@ public class FactorSideKickParser extends SideKickParser
if(ReadTable.DEFAULT_READTABLE.getCharacterType(ch) if(ReadTable.DEFAULT_READTABLE.getCharacterType(ch)
== ReadTable.WHITESPACE) == ReadTable.WHITESPACE)
{ {
wordStart = i; wordStart = i + 1;
break; break;
} }
} }