Merge pull request #205557 from ncfavier/concatLines

lib/strings: add `concatLines`
This commit is contained in:
Silvan Mosberger 2023-01-31 18:05:53 +01:00 committed by GitHub
commit 50e4dbf35b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 1 deletions

View file

@ -94,7 +94,7 @@ let
subtractLists mutuallyExclusive groupBy groupBy'; subtractLists mutuallyExclusive groupBy groupBy';
inherit (self.strings) concatStrings concatMapStrings concatImapStrings inherit (self.strings) concatStrings concatMapStrings concatImapStrings
intersperse concatStringsSep concatMapStringsSep intersperse concatStringsSep concatMapStringsSep
concatImapStringsSep makeSearchPath makeSearchPathOutput concatImapStringsSep concatLines makeSearchPath makeSearchPathOutput
makeLibraryPath makeBinPath optionalString makeLibraryPath makeBinPath optionalString
hasInfix hasPrefix hasSuffix stringToCharacters stringAsChars escape hasInfix hasPrefix hasSuffix stringToCharacters stringAsChars escape
escapeShellArg escapeShellArgs escapeShellArg escapeShellArgs

View file

@ -128,6 +128,17 @@ rec {
# List of input strings # List of input strings
list: concatStringsSep sep (lib.imap1 f list); list: concatStringsSep sep (lib.imap1 f list);
/* Concatenate a list of strings, adding a newline at the end of each one.
Defined as `concatMapStrings (s: s + "\n")`.
Type: concatLines :: [string] -> string
Example:
concatLines [ "foo" "bar" ]
=> "foo\nbar\n"
*/
concatLines = concatMapStrings (s: s + "\n");
/* Construct a Unix-style, colon-separated search path consisting of /* Construct a Unix-style, colon-separated search path consisting of
the given `subDir` appended to each of the given paths. the given `subDir` appended to each of the given paths.

View file

@ -153,6 +153,11 @@ runTests {
expected = "a,b,c"; expected = "a,b,c";
}; };
testConcatLines = {
expr = concatLines ["a" "b" "c"];
expected = "a\nb\nc\n";
};
testSplitStringsSimple = { testSplitStringsSimple = {
expr = strings.splitString "." "a.b.c.d"; expr = strings.splitString "." "a.b.c.d";
expected = [ "a" "b" "c" "d" ]; expected = [ "a" "b" "c" "d" ];