anchor.diff:  
       [<Literal>]
       let CloseCharacter = '|'
  +
  +(* This is for attributes [< >] , since the implementation deals with chars only. 
  +   We have to test if there is a [ before the cursor position and insert the closing '>'. *)
  +module private AngleBrackets =
  +
  +    [<Literal>]
  +    let OpenCharacter = '<'
  +
  +    [<Literal>]
  +    let CloseCharacter = '>'
  +
  +(* For multiline comments like this, since the implementation deals with chars only *)
  +module private Asterisk =
  +
  +    [<Literal>]
  +    let OpenCharacter = '*'
  +
  +    [<Literal>]
  +    let CloseCharacter = '*'
  +
   
   type internal ParenthesisCompletionSession () =
       
  
positive.code:     [<Literal>]
      let CloseCharacter = '"'
  
  module private VerticalBar =
  
      [<Literal>]
  
negative.code:     member __.IsSupportedOpeningBrace openingBrace =
          match openingBrace with
          | Parenthesis.OpenCharacter | CurlyBrackets.OpenCharacter | SquareBrackets.OpenCharacter
          | DoubleQuote.OpenCharacter | VerticalBar.OpenCharacter | AngleBrackets.OpenCharacter 
          | Asterisk.OpenCharacter -> true
          | _ -> false
  
      member this.CheckCodeContext(_document : Document, _position : int, _openingBrace, _cancellationToken) =
          this.AssertIsForeground()
      // We need to know if we are inside a F# comment. If we are, then don't do automatic completion.
          let sourceCodeTask = _document.GetTextAsync(_cancellationToken)
          sourceCodeTask.Wait(_cancellationToken)
          let sourceCode = sourceCodeTask.Result
          
          _position = 0 
          || let colorizationData = Tokenizer.getColorizationData(_document.Id, sourceCode, TextSpan(_position-1, 1), Some (_document.FilePath), [], _cancellationToken)
             in colorizationData.Count = 0 
                || colorizationData.Exists (fun classifiedSpan -> 
                      classifiedSpan.TextSpan.IntersectsWith _position &&
                      (
                          match classifiedSpan.ClassificationType with
                          | ClassificationTypeNames.Comment
                          | ClassificationTypeNames.StringLiteral -> false
                          | _ -> true // anything else is a valid classification type
                      ))                
  
      member this.CreateEditorSession(_document: Document, _openingPosition: int, openingBrace: char, _cancellationToken: CancellationToken) =
          match openingBrace with
  