package merlin-lib
Merlin's libraries
Install
Dune Dependency
Authors
Maintainers
Sources
merlin-5.3-502.tbz
sha256=2cea46f12397fa6e31ef0c0d4f5e11c1cfd916ee49420694005c95ebb3aa24bc
sha512=e94abb9ae38149245337db033e2c3891c7ec772168e99abf1bda0216a894c0854e7170b56fe88eba83ec98f2ebc0f5c7c723e8db14f59eeb6dd348bec12c6d62
doc/src/merlin-lib.analysis/ocamldoc.ml.html
Source file ocamldoc.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
(**************************************************************************) (* *) (* Copyright 2013 OCamlPro *) (* *) (* All rights reserved. This file is distributed under the terms of *) (* the Lesser GNU Public License version 3.0. *) (* *) (* This software is distributed in the hope that it will be useful, *) (* but WITHOUT ANY WARRANTY; without even the implied warranty of *) (* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) (* Lesser GNU General Public License for more details. *) (* *) (**************************************************************************) (** Pops comments from a list of comments (string * loc) to find the ones that are associated to a given location. Also returns the remaining comments after the location. *) let associate_comment ~after_only comments loc nextloc = let lstart = loc.Location.loc_start.Lexing.pos_lnum and lend = loc.Location.loc_end.Lexing.pos_lnum in let isnext c = nextloc <> Location.none && nextloc.Location.loc_start.Lexing.pos_cnum < c.Location.loc_end.Lexing.pos_cnum in let rec aux = function | [] -> (None, []) | (comment, cloc) :: comments -> ( let cstart = cloc.Location.loc_start.Lexing.pos_lnum and cend = cloc.Location.loc_end.Lexing.pos_lnum in let processed = (* It seems 4.02.3 remove ** from doc comment string, but not from * locations. We can recognize doc comment by checking how the two * differ. *) cloc.Location.loc_end.Lexing.pos_cnum - cloc.Location.loc_start.Lexing.pos_cnum = String.length comment + 5 in if cend < lstart - 1 || (cstart < lend && after_only) then aux comments else if cstart > lend + 1 || isnext cloc || (cstart > lstart && cend < lend (* keep inner comments *)) then (None, (comment, cloc) :: comments) else if String.length comment < 2 || ((not processed) && (comment.[0] <> '*' || comment.[1] = '*')) then aux comments else let comment = if processed then comment else String.sub comment 1 (String.length comment - 1) in let comment = String.trim comment in match aux comments with | None, comments -> (Some comment, comments) | Some c, comments -> (Some (String.concat "\n" [ comment; c ]), comments)) in aux comments
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>