summaryrefslogtreecommitdiff
path: root/lib/strings.nix (follow)
Commit message (Collapse)AuthorAgeFilesLines
* lib.strings: init splitStringBy (#385643)Pol Dellaiera2025-04-231-0/+91
|\
| * lib.strings: init splitStringByHeitor Augusto2025-04-071-0/+91
| |
* | lib/strings: Zero‐pad hex digits in escapeCMikael Voss2025-04-181-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | lib.strings.escapeC produces single‐digit hexadecimal strings for character values ≤ 15, which results in an ambiguity. If the following character is a hex digit, it will be interpreted as being part of the escape sequence. systemd, which also relies on C‐style escape sequences, does not decode single‐digit sequences at all, even if unambiguous. Padding the hexadecimal string with "0" avoids this problem.
* | Merge remote-tracking branch 'upstream/staging-next' into stagingSilvan Mosberger2025-04-021-340/+414
|\|
| * treewide: Format all Nix filesSilvan Mosberger2025-04-011-340/+413
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Format all Nix files using the officially approved formatter, making the CI check introduced in the previous commit succeed: nix-build ci -A fmt.check This is the next step of the of the [implementation](https://github.com/NixOS/nixfmt/issues/153) of the accepted [RFC 166](https://github.com/NixOS/rfcs/pull/166). This commit will lead to merge conflicts for a number of PRs, up to an estimated ~1100 (~33%) among the PRs with activity in the past 2 months, but that should be lower than what it would be without the previous [partial treewide format](https://github.com/NixOS/nixpkgs/pull/322537). Merge conflicts caused by this commit can now automatically be resolved while rebasing using the [auto-rebase script](https://github.com/NixOS/nixpkgs/tree/8616af08d915377bd930395f3b700a0e93d08728/maintainers/scripts/auto-rebase). If you run into any problems regarding any of this, please reach out to the [formatting team](https://nixos.org/community/teams/formatting/) by pinging @NixOS/nix-formatting.
* | lib.cmakeOptionType: support listTristan Ross2025-03-261-2/+2
|/
* lib/strings: allow CA paths in isStorePathMikael Voss2025-03-051-1/+7
|
* lib.strings: init toSentenceCaseisabel2025-02-191-0/+36
|
* lib.strings.concatMapAttrsStringSep: initYueh-Shun Li2024-12-061-0/+37
|
* treewide: lib.isInOldestRelease -> lib.oldestSupportedReleaseIsAtLeastRobert Hensing2024-10-081-1/+1
|
* lib.strings.trimWith: Refactor scopingadisbladis2024-09-031-3/+4
| | | | I wanted to use this instead of [my ownimplementation](https://github.com/nix-community/pyproject.nix/blob/65d4134/lib/util.nix#L18-L23) and got a small performance regression.
* lib.cli.escapeShellArg{,s}: Only escape when necessary (#333744)Gabriella Gonzalez2024-08-161-4/+12
| | | | | These utilities will now leave the string undisturbed if it doesn't need to be quoted (because it doesn't have any special characters). This can help generate nicer-looking command lines. This also transitively improves the output of `lib.toGNUCommandLine` which uses `escapeShellArg` internally
* Doc: migrate lib.strings to commonmarkJohannes Kirschbauer2024-07-271-564/+2002
|
* lib.trimWith: Minor doc improvementsSilvan Mosberger2024-07-261-3/+4
|
* lib.strings: add `trim` and `trimWith`Matt Sturgeon2024-07-251-0/+62
| | | | | | | | `strings.trim` returns a copy of the string with all leading and trailing whitespace removed. `strings.trimWith` does the same thing, but calling code can decide whether to trim the start and/or end of the string.
* lib/strings: Add makeIncludePath (#296237)Florian Richer2024-04-021-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Update strings.nix * Fix typo in docs * Update lib/strings.nix Co-authored-by: lolbinarycat <dogedoge61+github@gmail.com> * Update lib/strings.nix Co-authored-by: lolbinarycat <dogedoge61+github@gmail.com> * Add unit test with strings * Move test to strings * Add unit test with package structure * testMakeIncludePathWithPkgs: use real pkgs * Revert "testMakeIncludePathWithPkgs: use real pkgs" This reverts commit fb1850c069cfb324f3a43323da740a27a11793f3. * Update lib/tests/misc.nix Co-authored-by: lolbinarycat <dogedoge61+github@gmail.com> * Update lib/tests/misc.nix Co-authored-by: Silvan Mosberger <github@infinisil.com> --------- Co-authored-by: lolbinarycat <dogedoge61+github@gmail.com> Co-authored-by: Silvan Mosberger <github@infinisil.com>
* lib.toInt/toIntBase10: Make more efficient by hoisting up internal strings ↵adisbladis2024-03-031-10/+17
| | | | into higher scope
* lib.strings: Remove unneeded polyfillSilvan Mosberger2024-02-091-2/+1
| | | | Nix 2.3 (the minimum version needed to evaluate Nixpkgs) supports these, so no need to keep them around.
* lib: make deprecation warnings consistentAlois Wohlschlager2024-02-031-2/+2
| | | | | | | The deprecation warnings in lib were wildly inconsistent. Different formulations were used in different places for the same meaning. Some warnings used builtins.trace instead of lib.warn, which prevents silencing; one even only had a comment instead. Make everything more uniform.
* Merge pull request #273473 from adisbladis/lib-isConvertibleToString-static-listSilvan Mosberger2023-12-111-2/+4
|\ | | | | lib.isConvertibleToString: Statically compute types list
| * lib.isConvertibleToString: Statically compute types listadisbladis2023-12-111-2/+4
| |
* | lib.cmakeOptionType: Statically compute types listadisbladis2023-12-111-6/+7
|/
* lib.strings: Dont create scopes for getName/getVersionadisbladis2023-12-111-12/+12
| | | | We can create the `parse` function in a scope one level up to avoid recomputing it every time.
* lib.strings: add `replicate`h7x42023-10-311-0/+14
| | | | | | | `strings.replicate` returns n copies of a string, concatenated into a new string Co-authored-by: Silvan Mosberger <github@infinisil.com>
* lib: refactorAnderson Torres2023-10-091-12/+15
| | | | - rename `(enable|with)Feature(As|)` inputs to more descriptive names
* lib: add cmakeOptionType, cmakeBool and cmakeFeatureAnderson Torres2023-09-271-0/+58
|
* lib.removePrefix: OptimiseSilvan Mosberger2023-08-141-2/+2
|
* lib: simplify stringToCharactersfigsoda2023-06-221-1/+2
|
* lib.path.hasPrefix: initSilvan Mosberger2023-06-151-1/+2
|
* Merge pull request #221204 from tweag/deprecate-paths-to-stringsSilvan Mosberger2023-04-041-11/+75
|\ | | | | lib.strings: Prevent paths as inputs in some functions
| * lib.strings.remove{Prefix,Suffix}: Deprecate for path prefix/suffix argumentsSilvan Mosberger2023-03-151-5/+23
| | | | | | | | See also parent commits
| * lib.strings.normalizePath: Deprecate for path valuesSilvan Mosberger2023-03-151-1/+14
| | | | | | | | | | There's no need to call this function on path data types, and it's confusing with the new lib.path library functions
| * lib.strings: Deprecate path prefix/suffix/infix argumentsSilvan Mosberger2023-03-151-5/+38
| | | | | | | | | | | | | | | | lib.{hasPrefix,hasInfix,hasSuffix} would otherwise return an always-false result, which can be very unexpected: nix-repl> lib.strings.hasPrefix ./lib ./lib/meta.nix false
* | lib/strings: hide asciiTableNaïm Favier2023-03-041-2/+2
| | | | | | | | | | Since it's an attribute set, the lib function location generating code tries to generate locations for each of the characters...
* | strings: add escapeQuery for url encodingPatrick Widmer2023-03-031-3/+18
|/
* Merge pull request #205557 from ncfavier/concatLinesSilvan Mosberger2023-01-311-0/+11
|\ | | | | lib/strings: add `concatLines`
| * lib/strings: add `concatLines`Naïm Favier2022-12-101-0/+11
| | | | | | | | | | | | | | Like `unlines` from Haskell. The aim is to replace the `concatStringsSep "\n"` pattern for generated files, which doesn't add a final newline.
* | lib.isStringLike: Remove use of listRobert Hensing2022-12-311-1/+3
| | | | | | | | | | | | In the current implementation of Nix, this list would be allocated over and over. Iirc pennae tried to optimize static list allocation, but gained no significant performance improvement.
* | lib.strings.isConvertibleWithToString: Refactor to reuse isStringLikeRobert Hensing2022-12-311-4/+3
| |
* | lib.strings: isMoreCoercibleString -> isConvertibleWithToStringRobert Hensing2022-12-311-5/+6
| | | | | | | | | | | | | | Yes, this function name is inconveniently long, but it is important for the name to explicitly reference the function and not be mistaken for the implicit string conversions, which only happen for a smaller set of values.
* | lib.strings: isSimpleCoercibleString -> isStringLikeRobert Hensing2022-12-311-7/+7
| |
* | treewide: isCoercibleToString -> isMoreCoercibleToStringRobert Hensing2022-12-311-1/+1
| | | | | | | | No change in behavior.
* | lib.strings: Rename isCoercibleToString -> isMoreCoercibleToStringRobert Hensing2022-12-311-2/+11
| |
* | lib.strings.toShellVar: Use isSimpleCoercibleStringRobert Hensing2022-12-311-1/+1
| | | | | | | | Expecting no change in behavior.
* | lib.strings.isStorePath: Use isSimpleCoercibleToStringRobert Hensing2022-12-311-1/+1
| | | | | | | | Expecting no change in behavior.
* | lib.strings: Add isSimpleCoercibleToStringRobert Hensing2022-12-311-0/+11
| |
* | lib/strings: replace poop emoji (#206999)Naïm Favier2022-12-201-1/+1
| |
* | lib: fix typosfigsoda2022-12-171-2/+2
| |
* | lib.replaceChars: warn about being a deprecated aliasArtturin2022-12-151-17/+6
| | | | | | | | | | | | | | | | replaceStrings has been in nix since 2015(nix 1.10) so it is safe to remove the fallback https://github.com/nixos/nix/commit/d6d5885c1567454754a0d260521bafa0bd5e7fdb
* | Merge pull request #205457 from ↵Robert Hensing2022-12-111-6/+7
|\ \ | |/ |/| | | | | h7x4/lib-strings-toInt-broken-for-negative-numbers lib.strings: fix negative number handling for `toInt` and `toIntBase10`