185 lines
14 KiB
JavaScript
185 lines
14 KiB
JavaScript
goog.provide('sci.nrepl.completions');
|
|
goog.scope(function(){
|
|
sci.nrepl.completions.goog$module$goog$object = goog.module.get('goog.object');
|
|
});
|
|
sci.nrepl.completions.format = (function sci$nrepl$completions$format(fmt_str,x){
|
|
return clojure.string.replace(fmt_str,"%s",x);
|
|
});
|
|
sci.nrepl.completions.fully_qualified_syms = (function sci$nrepl$completions$fully_qualified_syms(ctx,ns_sym){
|
|
var syms = sci.core.eval_string_STAR_(ctx,sci.nrepl.completions.format("(keys (ns-map '%s))",ns_sym));
|
|
var sym_strs = cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__50056_SHARP_){
|
|
return ["`",cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__50056_SHARP_)].join('');
|
|
}),syms);
|
|
var sym_expr = ["[",clojure.string.join.cljs$core$IFn$_invoke$arity$2(" ",sym_strs),"]"].join('');
|
|
var syms__$1 = sci.core.eval_string_STAR_(ctx,sym_expr);
|
|
var syms__$2 = cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p1__50057_SHARP_){
|
|
return clojure.string.starts_with_QMARK_(cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__50057_SHARP_),"nbb.internal");
|
|
}),syms__$1);
|
|
return syms__$2;
|
|
});
|
|
sci.nrepl.completions.ns_imports__GT_completions = (function sci$nrepl$completions$ns_imports__GT_completions(ctx,query_ns,query){
|
|
var vec__50061 = clojure.string.split.cljs$core$IFn$_invoke$arity$2(query,/\//);
|
|
var _ns_part = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50061,(0),null);
|
|
var name_part = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50061,(1),null);
|
|
var resolved = sci.core.eval_string_STAR_(ctx,cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","let","cljs.core/let",-308701135,null),null,(1),null)),(new cljs.core.List(null,cljs.core.vec(cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"resolved__50058__auto__","resolved__50058__auto__",841164304,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","resolve","cljs.core/resolve",1796776582,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol(null,"quote","quote",1377916282,null),null,(1),null)),(new cljs.core.List(null,query_ns,null,(1),null))))),null,(1),null))))),null,(1),null)))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","when-not","cljs.core/when-not",-556141047,null),null,(1),null)),(new cljs.core.List(null,cljs.core.sequence.cljs$core$IFn$_invoke$arity$1(cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2((new cljs.core.List(null,new cljs.core.Symbol("cljs.core","var?","cljs.core/var?",1711182854,null),null,(1),null)),(new cljs.core.List(null,new cljs.core.Symbol(null,"resolved__50058__auto__","resolved__50058__auto__",841164304,null),null,(1),null))))),null,(1),null)),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(new cljs.core.List(null,new cljs.core.Symbol(null,"resolved__50058__auto__","resolved__50058__auto__",841164304,null),null,(1),null))], 0)))),null,(1),null))], 0))))], 0)));
|
|
if(cljs.core.truth_(resolved)){
|
|
var temp__5804__auto__ = (cljs.core.truth_(name_part)?(function (){var ends_with_dot_QMARK_ = clojure.string.ends_with_QMARK_(name_part,".");
|
|
var fields = clojure.string.split.cljs$core$IFn$_invoke$arity$2(name_part,/\./);
|
|
var fields__$1 = ((ends_with_dot_QMARK_)?fields:cljs.core.butlast(fields));
|
|
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [[cljs.core.str.cljs$core$IFn$_invoke$arity$1(query_ns),"/",((cljs.core.seq(fields__$1))?(function (){var joined = clojure.string.join.cljs$core$IFn$_invoke$arity$2(".",fields__$1);
|
|
return [joined,"."].join('');
|
|
})():null)].join(''),cljs.core.apply.cljs$core$IFn$_invoke$arity$3(sci.nrepl.completions.goog$module$goog$object.getValueByKeys,resolved,fields__$1)], null);
|
|
})():new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [[cljs.core.str.cljs$core$IFn$_invoke$arity$1(query_ns),"/"].join(''),resolved], null));
|
|
if(cljs.core.truth_(temp__5804__auto__)){
|
|
var vec__50071 = temp__5804__auto__;
|
|
var prefix = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50071,(0),null);
|
|
var imported = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50071,(1),null);
|
|
var props = (function (){var obj = imported;
|
|
var props = cljs.core.PersistentVector.EMPTY;
|
|
while(true){
|
|
if(cljs.core.truth_(obj)){
|
|
var G__50143 = Object.getPrototypeOf(obj);
|
|
var G__50144 = cljs.core.into.cljs$core$IFn$_invoke$arity$2(props,Object.getOwnPropertyNames(obj));
|
|
obj = G__50143;
|
|
props = G__50144;
|
|
continue;
|
|
} else {
|
|
return props;
|
|
}
|
|
break;
|
|
}
|
|
})();
|
|
var completions = cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (k){
|
|
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(prefix),cljs.core.str.cljs$core$IFn$_invoke$arity$1(k)].join('')], null);
|
|
}),props);
|
|
return completions;
|
|
} else {
|
|
return null;
|
|
}
|
|
} else {
|
|
return null;
|
|
}
|
|
});
|
|
sci.nrepl.completions.match = (function sci$nrepl$completions$match(_alias__GT_ns,ns__GT_alias,query,p__50079){
|
|
var vec__50081 = p__50079;
|
|
var sym_ns = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50081,(0),null);
|
|
var sym_name = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50081,(1),null);
|
|
var qualifier = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50081,(2),null);
|
|
var pat = cljs.core.re_pattern(query);
|
|
var or__5025__auto__ = (cljs.core.truth_((function (){var and__5023__auto__ = cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"unqualified","unqualified",-98904653),qualifier);
|
|
if(and__5023__auto__){
|
|
return cljs.core.re_find(pat,sym_name);
|
|
} else {
|
|
return and__5023__auto__;
|
|
}
|
|
})())?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [sym_ns,sym_name], null):null);
|
|
if(cljs.core.truth_(or__5025__auto__)){
|
|
return or__5025__auto__;
|
|
} else {
|
|
if(cljs.core.truth_(sym_ns)){
|
|
var or__5025__auto____$1 = (cljs.core.truth_(cljs.core.re_find(pat,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(ns__GT_alias,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(sym_ns))),"/",cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym_name)].join('')))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [sym_ns,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(ns__GT_alias,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(sym_ns))),"/",cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym_name)].join('')], null):null);
|
|
if(cljs.core.truth_(or__5025__auto____$1)){
|
|
return or__5025__auto____$1;
|
|
} else {
|
|
if(cljs.core.truth_(cljs.core.re_find(pat,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym_ns),"/",cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym_name)].join('')))){
|
|
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [sym_ns,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym_ns),"/",cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym_name)].join('')], null);
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
});
|
|
sci.nrepl.completions.completions = (function sci$nrepl$completions$completions(p__50095){
|
|
var map__50096 = p__50095;
|
|
var map__50096__$1 = cljs.core.__destructure_map(map__50096);
|
|
var request = map__50096__$1;
|
|
var ns_str = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50096__$1,new cljs.core.Keyword(null,"ns","ns",441598760));
|
|
var ctx = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__50096__$1,new cljs.core.Keyword(null,"ctx","ctx",-493610118));
|
|
try{var sci_ns = (cljs.core.truth_(ns_str)?sci.core.find_ns(ctx,cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(ns_str)):null);
|
|
var bm__49624__auto__ = cljs.core.PersistentArrayMap.createAsIfByAssoc([sci.core.ns,(function (){var or__5025__auto__ = sci_ns;
|
|
if(cljs.core.truth_(or__5025__auto__)){
|
|
return or__5025__auto__;
|
|
} else {
|
|
return cljs.core.deref(sci.core.ns);
|
|
}
|
|
})()]);
|
|
if(cljs.core.map_QMARK_(bm__49624__auto__)){
|
|
} else {
|
|
throw (new Error("Assert failed: (clojure.core/map? bm__49624__auto__)"));
|
|
}
|
|
|
|
sci.impl.vars.push_thread_bindings(bm__49624__auto__);
|
|
|
|
try{var temp__5802__auto__ = (function (){var or__5025__auto__ = new cljs.core.Keyword(null,"symbol","symbol",-1038572696).cljs$core$IFn$_invoke$arity$1(request);
|
|
if(cljs.core.truth_(or__5025__auto__)){
|
|
return or__5025__auto__;
|
|
} else {
|
|
return new cljs.core.Keyword(null,"prefix","prefix",-265908465).cljs$core$IFn$_invoke$arity$1(request);
|
|
}
|
|
})();
|
|
if(cljs.core.truth_(temp__5802__auto__)){
|
|
var query = temp__5802__auto__;
|
|
var has_namespace_QMARK_ = clojure.string.includes_QMARK_(query,"/");
|
|
var query_ns = ((has_namespace_QMARK_)?(function (){var G__50121 = clojure.string.split.cljs$core$IFn$_invoke$arity$2(query,/\//);
|
|
var G__50121__$1 = (((G__50121 == null))?null:cljs.core.first(G__50121));
|
|
if((G__50121__$1 == null)){
|
|
return null;
|
|
} else {
|
|
return cljs.core.symbol.cljs$core$IFn$_invoke$arity$1(G__50121__$1);
|
|
}
|
|
})():null);
|
|
var from_current_ns = sci.nrepl.completions.fully_qualified_syms(ctx,sci.core.eval_string_STAR_(ctx,"(ns-name *ns*)"));
|
|
var from_current_ns__$1 = cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (sym){
|
|
return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.namespace(sym),cljs.core.name(sym),new cljs.core.Keyword(null,"unqualified","unqualified",-98904653)], null);
|
|
}),from_current_ns);
|
|
var alias__GT_ns = sci.core.eval_string_STAR_(ctx,"(let [m (ns-aliases *ns*)] (zipmap (keys m) (map ns-name (vals m))))");
|
|
var ns__GT_alias = cljs.core.zipmap(cljs.core.vals(alias__GT_ns),cljs.core.keys(alias__GT_ns));
|
|
var from_aliased_nss = cljs.core.doall.cljs$core$IFn$_invoke$arity$1(cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic((function (alias){
|
|
var ns = cljs.core.get.cljs$core$IFn$_invoke$arity$2(alias__GT_ns,alias);
|
|
var syms = sci.core.eval_string_STAR_(ctx,sci.nrepl.completions.format("(keys (ns-publics '%s))",ns));
|
|
return cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (sym){
|
|
return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym),new cljs.core.Keyword(null,"qualified","qualified",-2065109343)], null);
|
|
}),syms);
|
|
}),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.keys(alias__GT_ns)], 0)));
|
|
var all_namespaces = cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (ns){
|
|
return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),null,new cljs.core.Keyword(null,"qualified","qualified",-2065109343)], null);
|
|
}),sci.core.eval_string_STAR_(ctx,"(all-ns)"));
|
|
var from_imports = ((has_namespace_QMARK_)?sci.nrepl.completions.ns_imports__GT_completions(ctx,query_ns,query):null);
|
|
var fully_qualified_names = (cljs.core.truth_(from_imports)?null:((has_namespace_QMARK_)?(function (){var ns = cljs.core.get.cljs$core$IFn$_invoke$arity$3(alias__GT_ns,query_ns,query_ns);
|
|
var syms = sci.core.eval_string_STAR_(ctx,sci.nrepl.completions.format("(and (find-ns '%s)\n (keys (ns-publics '%s)))",ns));
|
|
return cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (sym){
|
|
return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.str.cljs$core$IFn$_invoke$arity$1(ns),cljs.core.str.cljs$core$IFn$_invoke$arity$1(sym),new cljs.core.Keyword(null,"qualified","qualified",-2065109343)], null);
|
|
}),syms);
|
|
})():null));
|
|
var svs = cljs.core.concat.cljs$core$IFn$_invoke$arity$variadic(from_current_ns__$1,from_aliased_nss,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([all_namespaces,fully_qualified_names], 0));
|
|
var completions = cljs.core.keep.cljs$core$IFn$_invoke$arity$2((function (entry){
|
|
return sci.nrepl.completions.match(alias__GT_ns,ns__GT_alias,query,entry);
|
|
}),svs);
|
|
var completions__$1 = cljs.core.concat.cljs$core$IFn$_invoke$arity$2(completions,from_imports);
|
|
var completions__$2 = cljs.core.vec(cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p__50135){
|
|
var vec__50136 = p__50135;
|
|
var namespace = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50136,(0),null);
|
|
var name = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__50136,(1),null);
|
|
var G__50139 = new cljs.core.PersistentArrayMap(null, 1, ["candidate",cljs.core.str.cljs$core$IFn$_invoke$arity$1(name)], null);
|
|
if(cljs.core.truth_(namespace)){
|
|
return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__50139,"ns",cljs.core.str.cljs$core$IFn$_invoke$arity$1(namespace));
|
|
} else {
|
|
return G__50139;
|
|
}
|
|
}),completions__$1)));
|
|
return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"completions","completions",-190930179),completions__$2,new cljs.core.Keyword(null,"status","status",-1997798413),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, ["done"], null)], null);
|
|
} else {
|
|
return new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"status","status",-1997798413),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, ["done"], null)], null);
|
|
}
|
|
}finally {sci.impl.vars.pop_thread_bindings();
|
|
}}catch (e50097){var e = e50097;
|
|
console.error("ERROR",e);
|
|
|
|
return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"completions","completions",-190930179),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,"status","status",-1997798413),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, ["done"], null)], null);
|
|
}});
|
|
|
|
//# sourceMappingURL=sci.nrepl.completions.js.map
|