промежуточный. частичный рефакторинг с прицелом на библиотечную часть
This commit is contained in:
45
src/Common_old/UI/Themes/ProvidedTokenMaker.java
Normal file
45
src/Common_old/UI/Themes/ProvidedTokenMaker.java
Normal file
@@ -0,0 +1,45 @@
|
||||
package Common_old.UI.Themes;
|
||||
import org.fife.ui.rsyntaxtextarea.AbstractTokenMaker;
|
||||
import org.fife.ui.rsyntaxtextarea.Token;
|
||||
import org.fife.ui.rsyntaxtextarea.TokenMap;
|
||||
|
||||
import javax.swing.text.Segment;
|
||||
//объект создается 1 раз, при установке стиля редактора.
|
||||
//НИ В КОЕМ СЛУЧАЕ НЕЛЬЗЯ ПЕРЕДАВАТЬ ПО ССЫЛКЕ методам ради рефакторинга
|
||||
//все переменные должны быть сугубо локальными
|
||||
//иначе возможны непредсказуемые последствия.
|
||||
//Метод вызывается асинхронно, причем несколькими событиями)
|
||||
public abstract class ProvidedTokenMaker extends AbstractTokenMaker {
|
||||
public static void fillTokenMap(TokenMap map, int type, String... words) {
|
||||
for (String word : words)
|
||||
map.put(word, type);
|
||||
}
|
||||
//сохранить не забирая текущий символ.
|
||||
public void SaveCurrent(TokenProvider provider) {
|
||||
addToken(provider.text, provider.currentTokenStart,
|
||||
provider.i - 1, provider.currentTokenType,
|
||||
provider.newStartOffset + provider.currentTokenStart);
|
||||
}
|
||||
//сохранить забирая текущий символ
|
||||
public void SaveCurrent_(TokenProvider provider) {
|
||||
addToken(provider.text, provider.currentTokenStart,
|
||||
provider.i, provider.currentTokenType,
|
||||
provider.newStartOffset + provider.currentTokenStart);
|
||||
}
|
||||
public abstract void Body(TokenProvider provider);
|
||||
public abstract void performFinish(TokenProvider provider);
|
||||
public Token getTokenList(Segment text, int startTokenType, int startOffset) {
|
||||
resetTokenList();
|
||||
//структура для хранения индексов смещений, текущего состояния и т д.
|
||||
TokenProvider provider = new TokenProvider(text, startTokenType, startOffset);
|
||||
// provider.checkFortranWrap();
|
||||
while (provider.canRead()) {
|
||||
provider.readNext();
|
||||
Body(provider);
|
||||
provider.gotoNext();
|
||||
}
|
||||
performFinish(provider);
|
||||
// Return the first token in our linked list.
|
||||
return firstToken;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user