Skip to content

Commit

Permalink
Merge pull request #473 from liquidz/dev
Browse files Browse the repository at this point in the history
Next release
  • Loading branch information
liquidz committed Feb 29, 2024
2 parents 71ed8b5 + 8bb0037 commit 350a1df
Show file tree
Hide file tree
Showing 11 changed files with 84 additions and 68 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
- uses: DeLaGuardo/setup-clojure@master
with:
cli: latest
- uses: actions/cache@v3
- uses: actions/cache@v4
with:
path: ~/.m2
key: clojure-m2-${{ hashFiles('deps.edn') }}
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.adoc
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
All notable changes to this project will be documented in this file. This change log follows the conventions of http://keepachangelog.com/[keepachangelog.com].

== Unreleased (dev)
// {{{
=== Changed
* Bumped cider-nrepl to 0.45.0.
* Bumped nrepl to 1.1.1.

=== Fixed
* https://github.com/liquidz/vim-iced/issues/472[#472]: Fixed timeout error on connecting shadow-cljs REPL which has multiple builds.
// }}}

== 3.15.3271 (2024-01-04)
// {{{
Expand Down
47 changes: 25 additions & 22 deletions autoload/iced/nrepl/cljs.vim
Original file line number Diff line number Diff line change
Expand Up @@ -138,33 +138,36 @@ function! iced#nrepl#cljs#start_repl_via_env(env_key, ...) abort
endif

if empty(iced#nrepl#get_cljs_env())
let env = s:env[env_key](a:000)
if type(env) != v:t_dict | return iced#message#error_str(env) | endif

let warning = get(env, 'warning', '')
if !empty(warning)
call iced#message#warning_str(warning)
let res = iced#system#get('io').input(iced#message#get('confirm_proceeding'))
if res !=# '' && res !=# 'y' && res !=# 'Y'
return iced#message#error('canceled_cljs_repl')
endif
endif
call s:env[env_key](funcref('s:__start_repl_via_env'), a:000)
endif
endfunction

let Pre_code_f = get(env, 'pre-code', '')
let Env_code_f = get(env, 'env-code', '')
function! s:__start_repl_via_env(env) abort
if type(a:env) != v:t_dict | return iced#message#error_str(a:env) | endif

if type(Env_code_f) != v:t_func
return iced#message#error('invalid_cljs_env')
let warning = get(a:env, 'warning', '')
if !empty(warning)
call iced#message#warning_str(warning)
let res = iced#system#get('io').input(iced#message#get('confirm_proceeding'))
if res !=# '' && res !=# 'y' && res !=# 'Y'
return iced#message#error('canceled_cljs_repl')
endif
endif

let pre_code = type(Pre_code_f) == v:t_func ? Pre_code_f() : ''
let env_code = Env_code_f()
let Pre_code_f = get(a:env, 'pre-code', '')
let Env_code_f = get(a:env, 'env-code', '')

let opt = copy(env)
call extend(opt, {'pre': pre_code})
if iced#nrepl#cljs#start_repl(env_code, opt)
call iced#nrepl#set_cljs_env(env)
endif
if type(Env_code_f) != v:t_func
return iced#message#error('invalid_cljs_env')
endif

let pre_code = type(Pre_code_f) == v:t_func ? Pre_code_f() : ''
let env_code = Env_code_f()

let opt = copy(a:env)
call extend(opt, {'pre': pre_code})
if iced#nrepl#cljs#start_repl(env_code, opt)
call iced#nrepl#set_cljs_env(a:env)
endif
endfunction

Expand Down
7 changes: 4 additions & 3 deletions autoload/iced/nrepl/cljs/figwheel_main.vim
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,18 @@ function! s:post_code() abort
return code
endfunction

function! iced#nrepl#cljs#figwheel_main#get_env(options) abort
function! iced#nrepl#cljs#figwheel_main#get_env(callback, options) abort
if len(a:options) <= 0
return iced#message#get('argument_missing', 'build-id is required.')
endif

let s:build_id = a:options[0]
return {
return a:callback({
\ 'name': 'figwheel-main',
\ 'pre-code': funcref('s:pre_code'),
\ 'env-code': funcref('s:env_code'),
\ 'post-code': funcref('s:post_code')}
\ 'post-code': funcref('s:post_code'),
\ })
endfunction

let &cpo = s:save_cpo
Expand Down
7 changes: 4 additions & 3 deletions autoload/iced/nrepl/cljs/figwheel_sidecar.vim
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
let s:save_cpo = &cpo
set cpo&vim

function! iced#nrepl#cljs#figwheel_sidecar#get_env(_) abort
return {
function! iced#nrepl#cljs#figwheel_sidecar#get_env(callback, _) abort
return a:callback({
\ 'name': 'figwheel-sidecar',
\ 'pre-code': {-> '(do (require ''figwheel-sidecar.repl-api) (figwheel-sidecar.repl-api/start-figwheel!))'},
\ 'env-code': {-> '(figwheel-sidecar.repl-api/repl-env)'},
\ 'post-code': {-> '(figwheel-sidecar.repl-api/stop-figwheel!)'}}
\ 'post-code': {-> '(figwheel-sidecar.repl-api/stop-figwheel!)'},
\ })
endfunction

let &cpo = s:save_cpo
Expand Down
56 changes: 29 additions & 27 deletions autoload/iced/nrepl/cljs/shadow_cljs.vim
Original file line number Diff line number Diff line change
Expand Up @@ -24,47 +24,49 @@ function! s:validate_config() abort
return warn
endfunction

function! iced#nrepl#cljs#shadow_cljs#get_env(options) abort
function! iced#nrepl#cljs#shadow_cljs#get_env(callback, options) abort
if len(a:options) > 0
let s:build_id = trim(a:options[0], ' :')
else
" fetch running build ids
" `v:null` means to wait for ever
call iced#message#info('wait_a_minute')
let build_ids = get(iced#eval_and_read(s:get_build_ids_code, '', v:null), 'value', [])
if empty(build_ids) && len(a:options) <= 0
return iced#message#get('argument_missing', 'build-id is required.')
endif
return s:__select_build_id(a:callback, '', trim(a:options[0], ' :'))
endif

let build_id_count = len(build_ids)
if build_id_count == 0
return iced#message#get('argument_missing', 'build-id is required.')
elseif build_id_count == 1
let s:build_id = trim(build_ids[0], ' :')
else
" select build id
let p = iced#promise#new({resolve -> iced#selector({'accept': {_, v -> resolve(v)},
\ 'candidates': build_ids})})
let [result, error] = iced#promise#wait(p)
if !empty(error)
return iced#message#get('argument_missing', 'build-id is required.')
endif
" fetch running build ids
" `v:null` means to wait for ever
call iced#message#info('wait_a_minute')
let build_ids = get(iced#eval_and_read(s:get_build_ids_code, '', v:null), 'value', [])
if empty(build_ids) && len(a:options) <= 0
return iced#message#get('argument_missing', 'build-id is required.')
endif

let s:build_id = trim(result, ' :')
endif
let build_id_count = len(build_ids)
if build_id_count == 0
return iced#message#get('argument_missing', 'build-id is required.')
endif

if build_id_count == 1
return s:__select_build_id(a:callback, '', trim(build_ids[0], ' :'))
endif

" select build id
return iced#selector({
\ 'accept': funcref('s:__select_build_id', [a:callback]),
\ 'candidates': build_ids,
\ })
endfunction

function! s:__select_build_id(callback, _, v) abort
let s:build_id = trim(a:v, ' :')
" HACK: For shadow-cljs, vim-iced ignores quit detecting
" because shadow-cljs returns exact current ns instead of 'cljs.user'
return {
return a:callback({
\ 'name': 'shadow-cljs',
\ 'does_use_piggieback': v:false,
\ 'pre-code': {-> '(require ''shadow.cljs.devtools.api)'},
\ 'env-code': {-> {'raw': printf('(do (shadow.cljs.devtools.api/watch :%s) (shadow.cljs.devtools.api/nrepl-select :%s))', s:build_id, s:build_id) }},
\ 'ignore-quit-detecting': v:true,
\ 'warning': s:validate_config(),
\ }
\ })
endfunction


let &cpoptions = s:save_cpo
unlet s:save_cpo
2 changes: 1 addition & 1 deletion bin/iced
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ SCRIPT_DIR=$(cd $(dirname $0); pwd)
PROJECT_DIR=$(cd $SCRIPT_DIR; cd ..; pwd)
VERSION=$(grep 'Version: ' ${SCRIPT_DIR}/../doc/vim-iced.txt | cut -d' ' -f2)

BASE_DEPENDENCIES='nrepl/nrepl:1.1.0 refactor-nrepl/refactor-nrepl:3.9.1 cider/cider-nrepl:0.44.0 com.github.liquidz/iced-nrepl:1.2.480'
BASE_DEPENDENCIES='nrepl/nrepl:1.1.1 refactor-nrepl/refactor-nrepl:3.9.1 cider/cider-nrepl:0.45.0 com.github.liquidz/iced-nrepl:1.2.480'
BASE_MIDDLEWARES='cider.nrepl/wrap-classpath cider.nrepl/wrap-clojuredocs cider.nrepl/wrap-complete cider.nrepl/wrap-debug cider.nrepl/wrap-format cider.nrepl/wrap-info cider.nrepl/wrap-macroexpand cider.nrepl/wrap-ns cider.nrepl/wrap-out cider.nrepl/wrap-refresh cider.nrepl/wrap-stacktrace cider.nrepl/wrap-spec cider.nrepl/wrap-test cider.nrepl/wrap-trace cider.nrepl/wrap-undef cider.nrepl/wrap-xref refactor-nrepl.middleware/wrap-refactor iced.nrepl/wrap-iced'

CLJS_DEPENDENCIES='cider/piggieback:0.5.3'
Expand Down
4 changes: 2 additions & 2 deletions deps.edn
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{:paths ["clj/repl"]
:deps {nrepl/nrepl {:mvn/version "1.1.0"}
:deps {nrepl/nrepl {:mvn/version "1.1.1"}
refactor-nrepl/refactor-nrepl {:mvn/version "3.9.1"}
cider/cider-nrepl {:mvn/version "0.44.0"}
cider/cider-nrepl {:mvn/version "0.45.0"}
com.github.liquidz/iced-nrepl {:mvn/version "1.2.480"}}
:__middlewares__
["cider.nrepl/wrap-classpath"
Expand Down
8 changes: 4 additions & 4 deletions doc/vim-iced.txt
Original file line number Diff line number Diff line change
Expand Up @@ -142,9 +142,9 @@ LEININGEN~
$HOME/.lein/profile.clj
>
{:user
{:dependencies [[nrepl "1.1.0"]
{:dependencies [[nrepl "1.1.1"]
[com.github.liquidz/iced-nrepl "1.2.480"]
[cider/cider-nrepl "0.44.0"]]
[cider/cider-nrepl "0.45.0"]]
:repl-options {:nrepl-middleware [cider.nrepl/wrap-classpath
cider.nrepl/wrap-clojuredocs
cider.nrepl/wrap-complete
Expand Down Expand Up @@ -174,7 +174,7 @@ BOOT~
(swap! boot.repl/*default-dependencies* concat
'[[refactor-nrepl "3.9.1"]
[cider/cider-nrepl "0.44.0"]
[cider/cider-nrepl "0.45.0"]
[com.github.liquidz/iced-nrepl "1.2.480"]])
(swap! boot.repl/*default-middleware* concat
Expand Down Expand Up @@ -204,7 +204,7 @@ SHADOW-CLJS~
>
{
:dependencies [[refactor-nrepl "3.9.1"]
[cider/cider-nrepl "0.44.0"]
[cider/cider-nrepl "0.45.0"]
[com.github.liquidz/iced-nrepl "1.2.480"]]
}
<
Expand Down
9 changes: 5 additions & 4 deletions installer/cljstyle.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@

set -e

version='0.15.0'
file='cljstyle.tar.gz'
version='0.16.626'
file='cljstyle.zip'
if [ "$(uname)" == 'Darwin' ]; then
os='macos'
else
os='linux'
fi
url="https://github.com/greglook/cljstyle/releases/download/${version}/cljstyle_${version}_${os}.tar.gz"
arch="$(uname -m)"
url="https://github.com/greglook/cljstyle/releases/download/${version}/cljstyle_${version}_${os}_${arch}.zip"

curl -L -o ${file} ${url} && tar xvf ${file} && rm -f ${file}
curl -L -o ${file} ${url} && unzip ${file} && rm -f ${file}
2 changes: 1 addition & 1 deletion installer/joker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

set -e

version='1.3.0'
version='1.3.4'
file='joker.zip'
if [ "$(uname)" == 'Darwin' ]; then
os='mac'
Expand Down

0 comments on commit 350a1df

Please sign in to comment.