123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- " Last Modified: 2023-09-11
- " For debugging, inspired by https://github.com/w0rp/rust/blob/master/autoload/rust/debugging.vim
- let s:global_variable_list = [
- \ '_rustfmt_autosave_because_of_config',
- \ 'ftplugin_rust_source_path',
- \ 'loaded_syntastic_rust_cargo_checker',
- \ 'loaded_syntastic_rust_filetype',
- \ 'loaded_syntastic_rust_rustc_checker',
- \ 'rust_bang_comment_leader',
- \ 'rust_cargo_avoid_whole_workspace',
- \ 'rust_clip_command',
- \ 'rust_conceal',
- \ 'rust_conceal_mod_path',
- \ 'rust_conceal_pub',
- \ 'rust_fold',
- \ 'rust_last_args',
- \ 'rust_last_rustc_args',
- \ 'rust_original_delimitMate_excluded_regions',
- \ 'rust_playpen_url',
- \ 'rust_prev_delimitMate_quotes',
- \ 'rust_recent_nearest_cargo_tol',
- \ 'rust_recent_root_cargo_toml',
- \ 'rust_recommended_style',
- \ 'rust_set_conceallevel',
- \ 'rust_set_conceallevel=1',
- \ 'rust_set_foldmethod',
- \ 'rust_set_foldmethod=1',
- \ 'rust_shortener_url',
- \ 'rustc_makeprg_no_percent',
- \ 'rustc_path',
- \ 'rustfmt_autosave',
- \ 'rustfmt_autosave_if_config_present',
- \ 'rustfmt_command',
- \ 'rustfmt_emit_files',
- \ 'rustfmt_fail_silently',
- \ 'rustfmt_options',
- \ 'syntastic_extra_filetypes',
- \ 'syntastic_rust_cargo_fname',
- \]
- function! s:Echo(message) abort
- execute 'echo a:message'
- endfunction
- function! s:EchoGlobalVariables() abort
- for l:key in s:global_variable_list
- if l:key !~# '^_'
- call s:Echo('let g:' . l:key . ' = ' . string(get(g:, l:key, v:null)))
- endif
- if has_key(b:, l:key)
- call s:Echo('let b:' . l:key . ' = ' . string(b:[l:key]))
- endif
- endfor
- endfunction
- function! rust#debugging#Info() abort
- call cargo#Load()
- call rust#Load()
- call rustfmt#Load()
- call s:Echo('rust.vim Global Variables:')
- call s:Echo('')
- call s:EchoGlobalVariables()
- silent let l:output = system(g:rustfmt_command . ' --version')
- echo l:output
- let l:rustc = exists("g:rustc_path") ? g:rustc_path : "rustc"
- silent let l:output = system(l:rustc . ' --version')
- echo l:output
- silent let l:output = system('cargo --version')
- echo l:output
- version
- if exists(":SyntasticInfo")
- echo "----"
- echo "Info from Syntastic:"
- execute "SyntasticInfo"
- endif
- endfunction
- function! rust#debugging#InfoToClipboard() abort
- redir @"
- silent call rust#debugging#Info()
- redir END
- call s:Echo('RustInfo copied to your clipboard')
- endfunction
- function! rust#debugging#InfoToFile(filename) abort
- let l:expanded_filename = expand(a:filename)
- redir => l:output
- silent call rust#debugging#Info()
- redir END
- call writefile(split(l:output, "\n"), l:expanded_filename)
- call s:Echo('RustInfo written to ' . l:expanded_filename)
- endfunction
- " vim: set et sw=4 sts=4 ts=8:
|