ComposeTokenizer: better document tokenizer
This commit is contained in:
parent
c372848383
commit
e5860b8146
|
@ -35,6 +35,7 @@ class ComposeTokenizer : MultiAutoCompleteTextView.Tokenizer {
|
||||||
var i = cursor
|
var i = cursor
|
||||||
var character = text[i - 1]
|
var character = text[i - 1]
|
||||||
|
|
||||||
|
// go up to first illegal character or character we're looking for (@, # or :)
|
||||||
while(i > 0 && !(character == '@' || character == '#' || character == ':')) {
|
while(i > 0 && !(character == '@' || character == '#' || character == ':')) {
|
||||||
if(!isMentionOrHashtagAllowedCharacter(character)) {
|
if(!isMentionOrHashtagAllowedCharacter(character)) {
|
||||||
return cursor
|
return cursor
|
||||||
|
@ -44,12 +45,12 @@ class ComposeTokenizer : MultiAutoCompleteTextView.Tokenizer {
|
||||||
character = if (i == 0) ' ' else text[i - 1]
|
character = if (i == 0) ' ' else text[i - 1]
|
||||||
}
|
}
|
||||||
|
|
||||||
// caught domain name, try search username
|
// maybe caught domain name? try search username
|
||||||
// don't ask me about this code
|
|
||||||
if(i > 2 && character == '@') {
|
if(i > 2 && character == '@') {
|
||||||
var j = i - 1
|
var j = i - 1
|
||||||
var character2 = text[i - 2]
|
var character2 = text[i - 2]
|
||||||
|
|
||||||
|
// again go up to first illegal character or tag "@"
|
||||||
while(j > 0 && character2 != '@') {
|
while(j > 0 && character2 != '@') {
|
||||||
if(!isMentionOrHashtagAllowedCharacter(character2)) {
|
if(!isMentionOrHashtagAllowedCharacter(character2)) {
|
||||||
break
|
break
|
||||||
|
@ -58,6 +59,8 @@ class ComposeTokenizer : MultiAutoCompleteTextView.Tokenizer {
|
||||||
j--
|
j--
|
||||||
character2 = if (j == 0) ' ' else text[j - 1]
|
character2 = if (j == 0) ' ' else text[j - 1]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// found mention symbol, override cursor
|
||||||
if(character2 == '@') {
|
if(character2 == '@') {
|
||||||
i = j
|
i = j
|
||||||
character = character2
|
character = character2
|
||||||
|
|
Loading…
Reference in New Issue