@atomist/clj-editors
Version:
We build a node module `@atomist/clj-editors` here. This allows us to construct clojure editors using `rewrite-cljs`. After adding this dependency, the node application will have access to javascript functions transpiled from clojurescript.
98 lines (92 loc) • 3.91 kB
JavaScript
// Compiled by ClojureScript 1.9.946 {:target :nodejs}
goog.provide('rewrite_clj.zip.removez');
goog.require('cljs.core');
goog.require('rewrite_clj.zip.move');
goog.require('rewrite_clj.zip.utils');
goog.require('rewrite_clj.zip.whitespace');
goog.require('clojure.zip');
/**
* Remove all whitespace following a given node.
*/
rewrite_clj.zip.removez.remove_trailing_space = (function rewrite_clj$zip$removez$remove_trailing_space(zloc,p_QMARK_){
return rewrite_clj.zip.utils.remove_right_while.call(null,zloc,p_QMARK_);
});
/**
* Remove all whitespace preceding a given node.
*/
rewrite_clj.zip.removez.remove_preceding_space = (function rewrite_clj$zip$removez$remove_preceding_space(zloc,p_QMARK_){
return rewrite_clj.zip.utils.remove_left_while.call(null,zloc,p_QMARK_);
});
/**
* Remove value at the given zipper location. Returns the first non-whitespace
* node that would have preceded it in a depth-first walk. Will remove whitespace
* appropriately.
*
* - `[1 2 3] => [1 3]`
* - `[1 2] => [1]`
* - `[1 2] => [2]`
* - `[1] => []`
* - `[ 1 ] => []`
* - `[1 [2 3] 4] => [1 [2 3]]`
* - `[1 [2 3] 4] => [[2 3] 4]`
*
* If a node is located rightmost, both preceding and trailing spaces are removed,
* otherwise only trailing spaces are touched. This means that a following element
* (no matter whether on the same line or not) will end up in the same position
* (line/column) as the removed one, _unless_ a comment lies between the original
* node and the neighbour.
*/
rewrite_clj.zip.removez.remove = (function rewrite_clj$zip$removez$remove(zloc){
if(cljs.core.truth_(zloc)){
} else {
throw (new Error("Assert failed: zloc"));
}
var _PERCENT_ = rewrite_clj.zip.whitespace.skip_whitespace.call(null,clojure.zip.prev,clojure.zip.remove.call(null,rewrite_clj.zip.removez.remove_trailing_space.call(null,(cljs.core.truth_((function (){var or__7878__auto__ = rewrite_clj.zip.move.rightmost_QMARK_.call(null,zloc);
if(cljs.core.truth_(or__7878__auto__)){
return or__7878__auto__;
} else {
return rewrite_clj.zip.move.leftmost_QMARK_.call(null,zloc);
}
})())?rewrite_clj.zip.removez.remove_preceding_space.call(null,zloc,rewrite_clj.zip.whitespace.whitespace_QMARK_):zloc),rewrite_clj.zip.whitespace.whitespace_QMARK_)));
if(cljs.core.truth_(_PERCENT_)){
} else {
throw (new Error("Assert failed: %"));
}
return _PERCENT_;
});
/**
* Same as remove but preserves newlines
*/
rewrite_clj.zip.removez.remove_preserve_newline = (function rewrite_clj$zip$removez$remove_preserve_newline(zloc){
if(cljs.core.truth_(zloc)){
} else {
throw (new Error("Assert failed: zloc"));
}
var _PERCENT_ = rewrite_clj.zip.whitespace.skip_whitespace.call(null,clojure.zip.prev,clojure.zip.remove.call(null,rewrite_clj.zip.removez.remove_trailing_space.call(null,(cljs.core.truth_((function (){var or__7878__auto__ = rewrite_clj.zip.move.rightmost_QMARK_.call(null,zloc);
if(cljs.core.truth_(or__7878__auto__)){
return or__7878__auto__;
} else {
return rewrite_clj.zip.move.leftmost_QMARK_.call(null,zloc);
}
})())?rewrite_clj.zip.removez.remove_preceding_space.call(null,zloc,(function (p1__11667_SHARP_){
var and__7866__auto__ = rewrite_clj.zip.whitespace.whitespace_QMARK_.call(null,p1__11667_SHARP_);
if(cljs.core.truth_(and__7866__auto__)){
return cljs.core.not.call(null,rewrite_clj.zip.whitespace.linebreak_QMARK_.call(null,p1__11667_SHARP_));
} else {
return and__7866__auto__;
}
})):zloc),(function (p1__11668_SHARP_){
var and__7866__auto__ = rewrite_clj.zip.whitespace.whitespace_QMARK_.call(null,p1__11668_SHARP_);
if(cljs.core.truth_(and__7866__auto__)){
return cljs.core.not.call(null,rewrite_clj.zip.whitespace.linebreak_QMARK_.call(null,p1__11668_SHARP_));
} else {
return and__7866__auto__;
}
}))));
if(cljs.core.truth_(_PERCENT_)){
} else {
throw (new Error("Assert failed: %"));
}
return _PERCENT_;
});
//# sourceMappingURL=removez.js.map