Changeset 11937 for stable/HeuristicLab.CodeEditor/3.4/CodeEditor.cs
- Timestamp:
- 02/06/15 12:44:09 (9 years ago)
- Location:
- stable
- Files:
-
- 2 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
stable
- Property svn:mergeinfo changed
-
stable/HeuristicLab.CodeEditor/3.4/CodeEditor.cs
r11804 r11937 61 61 62 62 private AssemblyLoader assemblyLoader; 63 private ILanguageFeatures languageFeatures;64 63 private TextMarkerService textMarkerService; 65 64 … … 79 78 if (value == null) value = string.Empty; 80 79 if (prefix == value) return; 81 if (prefixMarker != null) textMarkerService.Remove(prefixMarker);80 if (prefixMarker != null) prefixMarker.Delete(); 82 81 Doc.Remove(0, prefix.Length); 83 82 prefix = value; … … 97 96 if (value == null) value = string.Empty; 98 97 if (suffix == value) return; 99 if (suffixMarker != null) textMarkerService.Remove(suffixMarker);98 if (suffixMarker != null) suffixMarker.Delete(); 100 99 Doc.Remove(Doc.TextLength - suffix.Length, suffix.Length); 101 100 suffix = value; … … 191 190 TextEditor.TextArea.TextView.LineTransformers.Add(textMarkerService); 192 191 TextEditor.TextArea.TextView.Services.AddService(typeof(ITextMarkerService), textMarkerService); 193 194 192 #endregion 195 193 … … 244 242 245 243 TextEditor.TextChanged += (sender, args) => { 246 textMarkerService.RemoveAll(x => x != prefixMarker && x != suffixMarker); 244 foreach (var marker in textMarkerService.TextMarkers) { 245 if (marker == prefixMarker || marker == suffixMarker) continue; 246 if (marker.Length != (int)marker.Tag) 247 marker.Delete(); 248 else { 249 int caretOffset = TextEditor.CaretOffset; 250 var line = Doc.GetLineByOffset(marker.StartOffset); 251 int lineEndOffset = line.EndOffset; 252 if (caretOffset == lineEndOffset) // special case for markers beyond line length 253 marker.Delete(); 254 } 255 } 247 256 OnTextEditorTextChanged(); 248 257 }; … … 383 392 int offset = line.Offset; 384 393 if (TextUtilities.GetLeadingWhitespace(Doc, line).Length > 0) 385 offset = TextUtilities.GetNextCaretPosition(Doc, offset, LogicalDirection.Forward, CaretPositioningMode.Word Start);394 offset = TextUtilities.GetNextCaretPosition(Doc, offset, LogicalDirection.Forward, CaretPositioningMode.WordBorder); 386 395 TextEditor.CaretOffset = offset; 387 396 } … … 408 417 marker.MarkerTypes = TextMarkerTypes.SquigglyUnderline; 409 418 marker.MarkerColor = error.IsWarning ? WarningColor : ErrorColor; 419 marker.Tag = segment.Length; 410 420 } 411 421 … … 429 439 switch (TextEditorSyntaxHighlighting) { 430 440 case "XML": 431 languageFeatures = new XmlLanguageFeatures(this);441 XmlLanguageFeatures.Apply(this); 432 442 break; 433 443 default: 434 languageFeatures = new CSharpLanguageFeatures(this);444 CSharpLanguageFeatures.Apply(this); 435 445 break; 436 446 }
Note: See TracChangeset
for help on using the changeset viewer.