discontinued unfinished attempts at syntactic word context (see 2e1398b484aa, 08a1c860bc12, 7f229b0212fe) -- back to more basic completion of Isabelle2013-2;
--- a/src/Pure/General/completion.scala Mon Jul 21 12:25:54 2014 +0200
+++ b/src/Pure/General/completion.scala Mon Jul 21 13:50:26 2014 +0200
@@ -231,16 +231,6 @@
def is_word(s: CharSequence): Boolean = word_regex.pattern.matcher(s).matches
def is_word_char(c: Char): Boolean = Symbol.is_ascii_letdig(c) || c == '.'
- def extend_word(text: CharSequence, offset: Text.Offset): Text.Offset =
- {
- val n = text.length
- var i = offset
- while (i < n && is_word_char(text.charAt(i))) i += 1
- if (i < n && text.charAt(i) == '>' && read_symbol(text.subSequence(0, i + 1)).isDefined)
- i + 1
- else i
- }
-
def read_symbol(in: CharSequence): Option[String] =
{
val reverse_in = new Library.Reverse(in)
@@ -341,7 +331,6 @@
start: Text.Offset,
text: CharSequence,
caret: Int,
- extend_word: Boolean,
language_context: Completion.Language_Context): Option[Completion.Result] =
{
def decode(s: String): String = if (do_decode) Symbol.decode(s) else s
@@ -359,7 +348,7 @@
val ok =
if (a == Completion.antiquote) language_context.antiquotes
else language_context.symbols || Completion.default_abbrs.exists(_._1 == a)
- if (ok) Some(((a, abbrevs), caret))
+ if (ok) Some((a, abbrevs))
else None
}
case _ => None
@@ -369,17 +358,10 @@
val words_result =
if (abbrevs_result.isDefined) None
else {
- val end =
- if (extend_word) Completion.Word_Parsers.extend_word(text, caret)
- else caret
val result =
- Completion.Word_Parsers.read_symbol(text.subSequence(0, end)) match {
+ Completion.Word_Parsers.read_symbol(text.subSequence(0, caret)) match {
case Some(symbol) => Some((symbol, ""))
- case None =>
- val word_context =
- end < length && Completion.Word_Parsers.is_word_char(text.charAt(end))
- if (word_context) None
- else Completion.Word_Parsers.read_word(explicit, text.subSequence(0, end))
+ case None => Completion.Word_Parsers.read_word(explicit, text.subSequence(0, caret))
}
result.map(
{
@@ -397,13 +379,13 @@
if ok
completion <- words_map.get_list(complete_word)
} yield (complete_word, completion)
- (((full_word, completions), end))
+ ((full_word, completions))
})
}
(abbrevs_result orElse words_result) match {
- case Some(((original, completions), end)) if !completions.isEmpty =>
- val range = Text.Range(- original.length, 0) + end + start
+ case Some((original, completions)) if !completions.isEmpty =>
+ val range = Text.Range(- original.length, 0) + caret + start
val immediate =
explicit ||
(!Completion.Word_Parsers.is_word(original) &&
--- a/src/Tools/jEdit/src/completion_popup.scala Mon Jul 21 12:25:54 2014 +0200
+++ b/src/Tools/jEdit/src/completion_popup.scala Mon Jul 21 13:50:26 2014 +0200
@@ -171,7 +171,7 @@
line_text <- JEdit_Lib.try_get_text(buffer, line_range)
result <-
syntax.completion.complete(
- history, decode, explicit, line_start, line_text, caret - line_start, false, context)
+ history, decode, explicit, line_start, line_text, caret - line_start, context)
} yield result
case None => None
@@ -558,7 +558,7 @@
val context = syntax.language_context
- syntax.completion.complete(history, true, false, 0, text, caret, false, context) match {
+ syntax.completion.complete(history, true, false, 0, text, caret, context) match {
case Some(result) =>
val fm = text_field.getFontMetrics(text_field.getFont)
val loc =