diff --git a/src/Compiler/Service/ServiceStructure.fs b/src/Compiler/Service/ServiceStructure.fs index f1d404f7680..42d73babd2d 100644 --- a/src/Compiler/Service/ServiceStructure.fs +++ b/src/Compiler/Service/ServiceStructure.fs @@ -850,7 +850,7 @@ module Structure = elif line.StartsWithOrdinal("//") then Some SingleLine else None - let getCommentRanges (lines: string[]) = + let getCommentRanges trivia (lines: string[]) = let rec loop (lastLineNum, currentComment, result as state) (lines: string list) lineNum = match lines with | [] -> state @@ -904,6 +904,18 @@ module Structure = }) |> acc.AddRange + for trivia in trivia do + match trivia with + | CommentTrivia.BlockComment m when m.StartLine <> m.EndLine -> + { + Scope = Scope.Comment + Collapse = Collapse.Same + Range = m + CollapseRange = m + } + |> acc.Add + | _ -> () + //=======================================// // Signature File AST Traversal // //=======================================// @@ -1107,10 +1119,10 @@ module Structure = | ParsedInput.ImplFile file -> file.Contents |> List.iter parseModuleOrNamespace collectConditionalDirectives file.Trivia.ConditionalDirectives sourceLines - getCommentRanges sourceLines + getCommentRanges file.Trivia.CodeComments sourceLines | ParsedInput.SigFile file -> file.Contents |> List.iter parseModuleOrNamespaceSigs collectConditionalDirectives file.Trivia.ConditionalDirectives sourceLines - getCommentRanges sourceLines + getCommentRanges file.Trivia.CodeComments sourceLines acc :> seq<_>