Commit graph

431 commits

Author SHA1 Message Date
tommy
9a615ff22c
Implement ALL for strings (#333) 2024-09-16 05:10:52 -10:00
Michiel Borkent
a64209d582
Make babashka-compatible (#323) 2022-03-14 07:11:40 -10:00
Nathan Marz
a379893598 BEFORE-ELEM, AFTER-ELEM, FIRST, LAST, BEGINNING, and END on subvecs now produce vector type in cljs 2020-09-17 15:47:26 -04:00
Nathan Marz
efaf35558a replace throw-illegal with ex-info 2020-09-17 15:36:16 -04:00
Nathan Marz
c54a46c686 before-index 0 on nil produces list, fix flaws in tests regarding predand= 2020-09-17 15:24:11 -04:00
Jeff Evans
2e002c1270
Improve before-index performance #223 (#291)
Adding new protocol for performing the insert-before-idx operation, with
implementations for core collection types

Adding new functional test to confirm behavior when operating on a string

Adding benchmarks to compare new performance vs old implementation vs
core Clojure in a couple of cases
2020-09-17 15:15:42 -04:00
Adrian
e222ba2a6c
Add arglist metadata to navs. (#290) 2020-08-16 19:40:02 -04:00
Nathan Marz
9c7f6fb65e don't write class files for eval'd functions for inline path functions or protpath extensions. 2019-09-10 18:18:56 -04:00
nathanmarz
8764a4b2b6 fix throw-illegal in cljs code 2018-12-03 14:29:58 -05:00
nathanmarz
e7abb2b538 fix handling of subvector paths in cljs 2018-06-26 08:39:28 -04:00
nathanmarz
350c8b857f Fix inline compiler symbol handling so class references can be used as constants within paths 2018-06-12 10:09:11 -04:00
nathanmarz
798cda211f eliminate reflection warning 2018-05-18 13:45:20 -04:00
nathanmarz
79a3610a64 remove usage of pprint in cljs 2018-04-21 10:19:05 -04:00
gnl
eea5fcb48b Fix ns form to comply with cljs.core.specs.alpha
When requiring the cljs.core.specs.alpha namespace with ClojureScript
1.10, the ns form in com.rpl.specter.navs fails spec validation and
produces a compile error, because the nested :clj reader conditionals
result in an empty :use clause.

Moving the reader conditional up to enclose :use fixes this.

Relevant spec:
b11cbeefa5/src/main/cljs/cljs/core/specs/alpha.cljc (L170)

Additional info:
https://clojurescript.org/news/2018-03-26-release#_core_specs_alpha
2018-04-07 16:54:11 +03:00
nathanmarz
ac48127871 fix 2018-03-23 18:24:01 -04:00
nathanmarz
01617b6264 fix build 2018-03-22 16:01:43 -04:00
nathanmarz
d4887c2090 fix issue with walker caused by change in cljs 1.10 2018-03-22 15:43:53 -04:00
nathanmarz
09d0d071ef improve compact implementation 2017-12-24 10:50:22 -05:00
nathanmarz
70d9fef5cc improve subselect fix 2017-12-21 23:28:00 -05:00
nathanmarz
7b646ca566 fix subselect changing first matched element to nil when transformed to empty sequence 2017-12-21 22:24:37 -05:00
nathanmarz
6a5054feea add compact navigator 2017-12-21 13:15:22 -05:00
nathanmarz
632e710b07 make terminal and vterminal select codepath no-ops 2017-12-21 13:04:26 -05:00
nathanmarz
0ceda21151 add vtransform 2017-12-04 10:06:43 -05:00
nathanmarz
9515582a19 add vterminal 2017-12-04 09:57:43 -05:00
nathanmarz
5b60eb17e3 extend ImplicitNav for strings, numbers, characters, booleans, symbols, and regexes 2017-11-08 13:47:40 -05:00
nathanmarz
349e03342f formatting 2017-10-22 12:23:25 -04:00
Michael Fogleman
98c7510d1c Remove implicit regex functionality. 2017-10-20 10:50:16 -04:00
Michael Fogleman
4cf7ee965f Rename regex* to regex-nav and move to specter.cljc. 2017-10-19 12:42:14 -04:00
Michael Fogleman
0e88c57a87 Correctly refer to regex type in CLJS.
Before it thought the type was com.rpl.specter/RegExp - but it's
actually js/RegExp.
2017-10-19 11:25:42 -04:00
Michael Fogleman
14dad51fd4 Specify where NONE is in regex*. 2017-10-19 11:25:42 -04:00
Michael Fogleman
d7ee2f7c6a Move regex* location to a better spot.
...since it is no longer a "defrichnav."
2017-10-19 11:25:42 -04:00
Michael Fogleman
7dbe4dc524 Use defnav with regex* rather than defrichnav.
Nathan: vals is how collect / collect-one are implemented. You should
use defnav rather than defrichnav since it handles that parameter in
the background. defrichnav exists since the compiler doesn't do
certain inlining optimizations, so defrichnav allows the handling of
vals to be inlined manually. This is only important for navigators
which do very little work (like keypath) – I think regexes are
expensive enough that the inlining optimization won't be noticeable.
2017-10-19 11:25:42 -04:00
Michael Fogleman
dc9e2205c3 Wrap re-seq in doseqres.
This navigates to each match, not a sequence of matches.
2017-10-19 11:25:42 -04:00
Michael Fogleman
6e90ceadea Use re-seq rather than re-find. 2017-10-19 11:25:42 -04:00
Michael Fogleman
b5f840db22 Initial select implementation for Regexes. 2017-10-19 11:25:42 -04:00
Michael Fogleman
efd123d17e Add a space to the nthpath documentation. 2017-09-11 10:21:42 -04:00
nathanmarz
c233fb7e9d add indexed-vals 2017-08-16 07:28:05 -04:00
nathanmarz
8d5f39a861 fix INDEXED-VALS 2017-08-15 01:32:43 -04:00
nathanmarz
85d3f14de9 fix docstring 2017-08-13 12:16:49 -04:00
nathanmarz
43fd7ab2e2 add INDEXED-VALS tests 2017-08-13 11:50:42 -04:00
nathanmarz
1805094df8 update changelog 2017-08-13 07:51:02 -04:00
nathanmarz
1b4a7d3d59 add INDEXED-VALS navigator 2017-08-13 07:49:08 -04:00
nathanmarz
1b7f987eaa fix outdated docstrings 2017-07-29 12:35:33 -04:00
nathanmarz
03e686cd9c tighten code 2017-07-24 13:02:19 -04:00
nathanmarz
dbae629472 cljs tests fix 2017-07-24 10:46:12 -04:00
nathanmarz
b7c62e444c add before-index and index-nav navigators 2017-07-24 10:29:11 -04:00
nathanmarz
179d818503 fix regression in cljs that causes warning for record fields named var and other reserved words 2017-06-27 08:22:20 -04:00
nathanmarz
cfb191e1cd add note about value collection in subselect 2017-06-14 12:11:09 -04:00
nathanmarz
7523e43823 improve doc for srange-dynamic 2017-06-07 17:17:13 -04:00
nathanmarz
3e4730b44f add ability to declare end-fn for srange-dynamic that takes in result of start-fn 2017-06-07 17:14:20 -04:00