I am trying to use ALE to check definitions and references in vim, but I am unable to do so.
Using the ccls
linter and in the output of :ALEInfo
it prints :
(Errors for ccls)
Failed to find project root, language server won't start.
Failed to find project root, language server won't start.
The complete output of :ALEInfo
is below :
Current Filetype: c
Available Linters: ['cc', 'ccls', 'clangd', 'clangtidy', 'cppcheck', 'cpplint', 'cquery', 'cspell', 'flawfinder']
Linter Aliases:
'cc' -> ['gcc', 'clang']
Enabled Linters: ['cc', 'ccls', 'clangtidy']
Ignored Linters: []
Suggested Fixers:
'astyle' - Fix C/C++ with astyle.
'clang-format' - Fix C, C++, C#, CUDA, Java, JavaScript, JSON, ObjectiveC and Protobuf files with clang-format.
'clangtidy' - Fix C/C++ and ObjectiveC files with clang-tidy.
'remove_trailing_lines' - Remove all blank lines at the end of a file.
'trim_whitespace' - Remove all trailing whitespace characters at the end of every line.
'uncrustify' - Fix C, C++, C#, ObjectiveC, ObjectiveC++, D, Java, Pawn, and VALA files with uncrustify.
Linter Variables:
let g:ale_c_always_make = 1
let g:ale_c_build_dir = ''
let g:ale_c_build_dir_names = ['build', 'bin']
let g:ale_c_cc_executable = '<auto>'
let g:ale_c_cc_header_exts = ['h']
let g:ale_c_cc_options = '-std=c11 -Wall'
let g:ale_c_cc_use_header_lang_flag = -1
let g:ale_c_ccls_executable = 'ccls'
let g:ale_c_ccls_init_options = {}
let g:ale_c_clangtidy_checks = []
let g:ale_c_clangtidy_executable = 'clang-tidy'
let g:ale_c_clangtidy_extra_options = ''
let g:ale_c_clangtidy_options = ''
let g:ale_c_parse_compile_commands = 1
let g:ale_c_parse_makefile = 0
Global Variables:
let g:ale_cache_executable_check_failures = v:null
let g:ale_change_sign_column_color = 0
let g:ale_command_wrapper = ''
let g:ale_completion_delay = 100
let g:ale_completion_enabled = 1
let g:ale_completion_max_suggestions = 50
let g:ale_disable_lsp = 0
let g:ale_echo_cursor = 1
let g:ale_echo_msg_error_str = 'Error'
let g:ale_echo_msg_format = '%code% (%linter%): %%s'
let g:ale_echo_msg_info_str = 'Info'
let g:ale_echo_msg_warning_str = 'Warning'
let g:ale_enabled = 1
let g:ale_fix_on_save = 0
let g:ale_fixers = {}
let g:ale_history_enabled = 1
let g:ale_history_log_output = 1
let g:ale_keep_list_window_open = 0
let g:ale_lint_delay = 200
let g:ale_lint_on_enter = 1
let g:ale_lint_on_filetype_changed = 1
let g:ale_lint_on_insert_leave = 1
let g:ale_lint_on_save = 1
let g:ale_lint_on_text_changed = 'normal'
let g:ale_linter_aliases = {}
let g:ale_linters = {}
let b:ale_linters = ['clangtidy', 'cc', 'ccls']
let g:ale_linters_explicit = 0
let g:ale_linters_ignore = {}
let g:ale_list_vertical = 0
let g:ale_list_window_size = 10
let g:ale_loclist_msg_format = '%code% (%linter%): %%s'
let g:ale_max_buffer_history_size = 20
let g:ale_max_signs = -1
let g:ale_maximum_file_size = v:null
let g:ale_open_list = 0
let g:ale_pattern_options = v:null
let g:ale_pattern_options_enabled = v:null
let g:ale_root = {}
let g:ale_set_balloons = 0
let g:ale_set_highlights = 0
let g:ale_set_loclist = 1
let g:ale_set_quickfix = 0
let g:ale_set_signs = 1
let g:ale_sign_column_always = 0
let g:ale_sign_error = '>>'
let g:ale_sign_info = '--'
let g:ale_sign_offset = 1000000
let g:ale_sign_style_error = '>>'
let g:ale_sign_style_warning = '--'
let g:ale_sign_warning = '--'
let g:ale_sign_highlight_linenrs = 0
let g:ale_statusline_format = v:null
let g:ale_type_map = {}
let g:ale_use_neovim_diagnostics_api = 0
let g:ale_use_global_executables = v:null
let g:ale_virtualtext_cursor = 'disabled'
let g:ale_warn_about_trailing_blank_lines = 1
let g:ale_warn_about_trailing_whitespace = 1
LSP Error Messages:
(Errors for ccls)
Failed to find project root, language server won't start.
Failed to find project root, language server won't start.
Failed to find project root, language server won't start.
Command History:
(executable check - success) clang
(finished - exit code 0) ['/usr/bin/zsh', '-c', '''clang'' -S -x c -o /dev/null -iquote ''/home/ddsett/Programming/Learning/C-general'' -std=c11 -Wall - < ''/tmp/vRulT60/1/store_bits.c''']
<<<NO OUTPUT RETURNED>>>
(executable check - success) clang-tidy
(finished - exit code 0) ['/usr/bin/zsh', '-c', '''clang-tidy'' ''/home/ddsett/Programming/Learning/C-general/store_bits.c''']
<<<NO OUTPUT RETURNED>>>
(finished - exit code 0) ['/usr/bin/zsh', '-c', '''clang'' -S -x c -o /dev/null -iquote ''/home/ddsett/Programming/Learning/C-general'' -std=c11 -Wall - < ''/tmp/vRulT60/2/store_bits.c''']
<<<NO OUTPUT RETURNED>>>
(finished - exit code 0) ['/usr/bin/zsh', '-c', '''clang'' -S -x c -o /dev/null -iquote ''/home/ddsett/Programming/Learning/C-general'' -std=c11 -Wall - < ''/tmp/vRulT60/3/store_bits.c''']
<<<NO OUTPUT RETURNED>>>
I want to avoid using an IDE which comes with features like GoToDefinition and FindReferences. Also learning how to LSPs may be helpful when working with other programming languages as well.
I could use some help now so posting the question here
I have installed ccls
using the command sudo apt install ccls
. I believe ALE comes with ccls
so this shouldn't be necessary.
Searched online for what exactly a project root
means in C
but found very ambiguous definitions or several definitions