src/Tools/jEdit/src/text_structure.scala
changeset 64536 e61de633a3ed
parent 64518 b87697eec2ac
child 64621 7116f2634e32
equal deleted inserted replaced
64535:4f161e8cdaac 64536:e61de633a3ed
   140             else 0
   140             else 0
   141 
   141 
   142           val indent =
   142           val indent =
   143             if (Token_Markup.Line_Context.prev(buffer, current_line).get_context == Scan.Finished) {
   143             if (Token_Markup.Line_Context.prev(buffer, current_line).get_context == Scan.Finished) {
   144               line_head(current_line) match {
   144               line_head(current_line) match {
   145                 case None => indent_structure + indent_brackets + indent_extra
       
   146                 case Some(info @ Text.Info(range, tok)) =>
   145                 case Some(info @ Text.Info(range, tok)) =>
   147                   if (tok.is_begin ||
   146                   if (tok.is_begin ||
   148                       keywords.is_before_command(tok) ||
   147                       keywords.is_before_command(tok) ||
   149                       keywords.is_command(tok, Keyword.theory)) 0
   148                       keywords.is_command(tok, Keyword.theory)) 0
   150                   else if (keywords.is_command(tok, Keyword.proof_enclose))
   149                   else if (keywords.is_command(tok, Keyword.proof_enclose))
   164                         line_indent(prev_line) + indent_brackets + extra - indent_offset(tok)
   163                         line_indent(prev_line) + indent_brackets + extra - indent_offset(tok)
   165                       case Some(prev_tok) =>
   164                       case Some(prev_tok) =>
   166                         indent_structure + indent_brackets + indent_size - indent_offset(tok) -
   165                         indent_structure + indent_brackets + indent_size - indent_offset(tok) -
   167                         indent_offset(prev_tok) - indent_indent(prev_tok)
   166                         indent_offset(prev_tok) - indent_indent(prev_tok)
   168                     }
   167                     }
   169                  }
   168                   }
       
   169                 case None =>
       
   170                   prev_line_command match {
       
   171                     case None =>
       
   172                       val extra = if (head_is_quasi_command(prev_line)) indent_extra else 0
       
   173                       line_indent(prev_line) + indent_brackets + extra
       
   174                     case Some(prev_tok) =>
       
   175                       indent_structure + indent_brackets + indent_size -
       
   176                       indent_offset(prev_tok) - indent_indent(prev_tok)
       
   177                   }
   170               }
   178               }
   171             }
   179             }
   172             else line_indent(current_line)
   180             else line_indent(current_line)
   173 
   181 
   174           actions.clear()
   182           actions.clear()