From 26305e57104bd34e6d5dea91e2a1ef6f66cd39f5 Mon Sep 17 00:00:00 2001 From: Cheng Lou Date: Tue, 13 Apr 2021 09:35:07 -0700 Subject: [PATCH] Remove most Str.split Not needed --- src/FindFiles.ml | 4 ++-- src/MarkdownOfOCamldoc.ml | 4 ++-- src/Packages.ml | 2 +- src/PartialParser.ml | 8 ++++---- src/PrepareUtils.ml | 2 +- src/Utils.ml | 15 --------------- 6 files changed, 10 insertions(+), 25 deletions(-) diff --git a/src/FindFiles.ml b/src/FindFiles.ml index abf949cc..ce0021db 100644 --- a/src/FindFiles.ml +++ b/src/FindFiles.ml @@ -46,11 +46,11 @@ let isSourceFile name = || Filename.check_suffix name ".mli" let compiledNameSpace name = - Str.split (Str.regexp_string "-") name + String.split_on_char '-' name |> List.map String.capitalize_ascii |> String.concat "" (* Remove underscores??? Whyyy bucklescript, whyyyy *) - |> Str.split (Str.regexp_string "_") + |> String.split_on_char '_' |> String.concat "" let compiledBaseName ~namespace name = diff --git a/src/MarkdownOfOCamldoc.ml b/src/MarkdownOfOCamldoc.ml index 24a64077..522a7dbf 100644 --- a/src/MarkdownOfOCamldoc.ml +++ b/src/MarkdownOfOCamldoc.ml @@ -24,7 +24,7 @@ let sliceToEnd text num = if ln <= num then "" else String.sub text num (ln - num) let stripLeft text = - let lines = Str.split (Str.regexp_string "\n") text in + let lines = String.split_on_char '\n' text in let rec loop lines = match lines with | [] -> 0 @@ -122,7 +122,7 @@ let convertItem item = match String.trim lang = "" with | true -> "ml" | false -> - let parts = Str.split (Str.regexp_string ";") (String.trim lang) in + let parts = String.split_on_char ';' (String.trim lang) in if List.mem "ml" parts || List.mem "ocaml" parts || List.mem "re" parts || List.mem "reason" parts diff --git a/src/Packages.ml b/src/Packages.ml index b7754704..d772400f 100644 --- a/src/Packages.ml +++ b/src/Packages.ml @@ -79,7 +79,7 @@ let newBsPackage rootPath = match item |> Json.string with | None -> opens | Some s -> ( - let parts = Utils.split_on_char ' ' s in + let parts = String.split_on_char ' ' s in match parts with | "-open" :: name :: _ -> name :: opens | _ -> opens)) diff --git a/src/PartialParser.ml b/src/PartialParser.ml index 12144800..6a4e30ce 100644 --- a/src/PartialParser.ml +++ b/src/PartialParser.ml @@ -44,7 +44,7 @@ let findCallFromArgument text offset = let i1 = skipWhite text (i - 1) in let i0 = startOfLident text i1 in let funLident = String.sub text i0 (i1 - i0 + 1) in - Str.split (Str.regexp_string ".") funLident + String.split_on_char '.' funLident | ')' -> loop ~i:(i - 1) ~nClosed:(nClosed + 1) | _ -> loop ~i:(i - 1) ~nClosed else [] @@ -134,7 +134,7 @@ let isLowercaseIdent id = let findCompletable text offset = let mkPath s = let len = String.length s in - let parts = Str.split (Str.regexp_string ".") s in + let parts = String.split_on_char '.' s in let parts = match s.[len - 1] = '.' with true -> parts @ [""] | false -> parts in @@ -143,7 +143,7 @@ let findCompletable text offset = match findJsxContext text (offset - len - 1) with | None -> Cpath parts | Some componentName -> - Cjsx (Str.split (Str.regexp_string ".") componentName, id)) + Cjsx (String.split_on_char '.' componentName, id)) | _ -> Cpath parts in let mkPipe off partialName = @@ -200,7 +200,7 @@ let findOpens text offset = | [] -> SharedTypes.Tip "place holder" | one :: rest -> Nested (one, loop rest) in - loop (o |> Str.split (Str.regexp_string ".")) + loop (o |> String.split_on_char '.') in let add o = opens := (o |> pathOfModuleOpen) :: !opens in let maybeOpen i0 = diff --git a/src/PrepareUtils.ml b/src/PrepareUtils.ml index 80da5040..8321ae9f 100644 --- a/src/PrepareUtils.ml +++ b/src/PrepareUtils.ml @@ -22,7 +22,7 @@ let trimFirst num string = | false -> "" let cleanOffStars doc = - let lines = Str.split (Str.regexp_string "\n") doc in + let lines = String.split_on_char '\n' doc in let rec loop lines = match lines with | [] -> None diff --git a/src/Utils.ml b/src/Utils.ml index 819073ce..444b4f5c 100644 --- a/src/Utils.ml +++ b/src/Utils.ml @@ -1,18 +1,3 @@ -(* - steal from OCaml stdlib - https://github.com/ocaml/ocaml/blob/7c9c210884e1b46f21af5bb4dfab995bb3336cf7/stdlib/string.ml#L205-L214 -*) -let split_on_char sep s = - let open String in - let r = ref [] in - let j = ref (length s) in - for i = length s - 1 downto 0 do - if unsafe_get s i = sep then ( - r := sub s (i + 1) (!j - i - 1) :: !r; - j := i) - done; - sub s 0 !j :: !r - let topLoc fname = { Location.loc_start =