debugging.vim (3203B)
1 " Last Modified: 2023-09-11 2 3 " For debugging, inspired by https://github.com/w0rp/rust/blob/master/autoload/rust/debugging.vim 4 5 let s:global_variable_list = [ 6 \ '_rustfmt_autosave_because_of_config', 7 \ 'ftplugin_rust_source_path', 8 \ 'loaded_syntastic_rust_cargo_checker', 9 \ 'loaded_syntastic_rust_filetype', 10 \ 'loaded_syntastic_rust_rustc_checker', 11 \ 'rust_bang_comment_leader', 12 \ 'rust_cargo_avoid_whole_workspace', 13 \ 'rust_clip_command', 14 \ 'rust_conceal', 15 \ 'rust_conceal_mod_path', 16 \ 'rust_conceal_pub', 17 \ 'rust_fold', 18 \ 'rust_last_args', 19 \ 'rust_last_rustc_args', 20 \ 'rust_original_delimitMate_excluded_regions', 21 \ 'rust_playpen_url', 22 \ 'rust_prev_delimitMate_quotes', 23 \ 'rust_recent_nearest_cargo_tol', 24 \ 'rust_recent_root_cargo_toml', 25 \ 'rust_recommended_style', 26 \ 'rust_set_conceallevel', 27 \ 'rust_set_conceallevel=1', 28 \ 'rust_set_foldmethod', 29 \ 'rust_set_foldmethod=1', 30 \ 'rust_shortener_url', 31 \ 'rustc_makeprg_no_percent', 32 \ 'rustc_path', 33 \ 'rustfmt_autosave', 34 \ 'rustfmt_autosave_if_config_present', 35 \ 'rustfmt_command', 36 \ 'rustfmt_emit_files', 37 \ 'rustfmt_fail_silently', 38 \ 'rustfmt_options', 39 \ 'syntastic_extra_filetypes', 40 \ 'syntastic_rust_cargo_fname', 41 \] 42 43 function! s:Echo(message) abort 44 execute 'echo a:message' 45 endfunction 46 47 function! s:EchoGlobalVariables() abort 48 for l:key in s:global_variable_list 49 if l:key !~# '^_' 50 call s:Echo('let g:' . l:key . ' = ' . string(get(g:, l:key, v:null))) 51 endif 52 53 if has_key(b:, l:key) 54 call s:Echo('let b:' . l:key . ' = ' . string(b:[l:key])) 55 endif 56 endfor 57 endfunction 58 59 function! rust#debugging#Info() abort 60 call cargo#Load() 61 call rust#Load() 62 call rustfmt#Load() 63 call s:Echo('rust.vim Global Variables:') 64 call s:Echo('') 65 call s:EchoGlobalVariables() 66 67 silent let l:output = system(g:rustfmt_command . ' --version') 68 echo l:output 69 70 let l:rustc = exists("g:rustc_path") ? g:rustc_path : "rustc" 71 silent let l:output = system(l:rustc . ' --version') 72 echo l:output 73 74 silent let l:output = system('cargo --version') 75 echo l:output 76 77 version 78 79 if exists(":SyntasticInfo") 80 echo "----" 81 echo "Info from Syntastic:" 82 execute "SyntasticInfo" 83 endif 84 endfunction 85 86 function! rust#debugging#InfoToClipboard() abort 87 redir @" 88 silent call rust#debugging#Info() 89 redir END 90 91 call s:Echo('RustInfo copied to your clipboard') 92 endfunction 93 94 function! rust#debugging#InfoToFile(filename) abort 95 let l:expanded_filename = expand(a:filename) 96 97 redir => l:output 98 silent call rust#debugging#Info() 99 redir END 100 101 call writefile(split(l:output, "\n"), l:expanded_filename) 102 call s:Echo('RustInfo written to ' . l:expanded_filename) 103 endfunction 104 105 " vim: set et sw=4 sts=4 ts=8: