ale/test
Jacob Segal cb0a5c7a36 Improve perf for compile dbs in large projects
When using a compilation database (compile_commands.json) in very large
projects, significant delays would occur when changing files --
particularly those that happened to be far down the db. Rather than
iterating over the whole list every time, we now build up a lookup table
based on the tail of the filename (and tail of the directory for
widening searches) and iterate over the much smaller list of compile
commands for files with the given name.

Test metrics (from compile_database_perf/test.sh) show a 90% performance
improvement -- from 25 seconds to 2.5 seconds per run.
2019-01-06 00:41:57 -08:00
..
.config/nvim
command_callback Add support for bingo (#2165) 2019-01-05 19:12:55 +00:00
compile_database_perf Improve perf for compile dbs in large projects 2019-01-06 00:41:57 -08:00
completion #1794 - Handle LSP documentation content as a Dictionary 2018-09-17 11:16:46 +01:00
csslint-test-files
cucumber_fixtures/features Add cucumber checker for cucumber files 2018-04-20 22:54:29 -04:00
dart_files Added dartfmt fixer (#1683) 2018-07-01 13:55:41 +01:00
elixir-test-files new fixer elixir mix format 2017-10-22 19:20:38 -04:00
elm-test-files fallback to elm if elm-tests isn’t available 2019-01-04 09:55:35 +02:00
eslint-test-files
fix change ale to use value of g:ale_shell regardless of what it is 2019-01-02 19:05:51 -05:00
fixers Fixup tests for auto-pipenv 2018-12-21 20:28:17 -08:00
flow
go_files Add fixer for Go modules (#1873) 2018-09-19 19:33:23 +01:00
gradle-test-files
hamllint-test-files force add test fixtures for hamllint 2017-10-25 21:35:24 +02:00
handler Merge pull request #2150 from mvgrimes/perl-linter-data-fix 2018-12-20 16:22:10 +00:00
javascript_files added importjs fixer 2017-12-05 00:37:31 +09:00
json_files Support fixing JSON files with fixjson 2018-01-24 10:36:31 +00:00
lsp change ale to use value of g:ale_shell regardless of what it is 2019-01-02 19:05:51 -05:00
maven-test-files/maven-kotlin-project Add kotlin language server support (#1725) 2018-07-15 18:54:18 +01:00
ocaml-test-files add ocamlformat support 2018-08-26 13:47:56 +02:00
phpcs-test-files
prettier-test-files Set --parser option in Prettier's fixer (#1620) 2018-06-18 22:40:57 +01:00
puppet-test-files Start of vader tests for puppet root detection 2018-07-05 21:25:03 +02:00
python_fixtures/pipenv Add python_[linter]_auto_pipenv options for python linters (fixes #1656) 2018-09-15 22:10:46 -04:00
reasonml_files refmt fixer for ReasonML 2017-10-29 21:48:28 +01:00
ruby_fixtures Add solargraph.yml file as root path search file. 2018-09-05 07:12:04 +09:00
rust_files add rustfmt fixer 2017-10-21 12:31:49 -05:00
scala_fixtures Changed sbtserver to just work off of the address variable 2018-09-01 21:03:29 -04:00
script Add bibclen fixer support 2018-12-01 15:05:18 +09:00
sign Fix #1687 - Parse highlights when verbose > 0 2018-07-15 21:01:00 +01:00
slimlint-test-files
smlnj
swiftlint-test-files Add support for Pod based SwiftLint (#2122) 2018-12-07 15:20:58 -07:00
test_c_projects Added additional unit tests + adapted review comments #1167 2018-03-21 20:44:35 +01:00
tflint-test-files/foo Add tflint fot Terraform 2017-10-26 19:37:04 +01:00
top
util fix has('unix') equal 0 is windows. 2018-10-24 08:29:11 +09:00
dumb_tcp_client.py #830 Implement a socket wrapper API for use with LSP connections 2018-07-02 23:49:47 +01:00
dumb_tcp_server.py #830 Implement a socket wrapper API for use with LSP connections 2018-07-02 23:49:47 +01:00
smoke_test.vader #2017 Simplify lint cycles for supporting other sources later 2018-10-29 11:29:21 +00:00
test_ale_info.vader Fix info text 2018-11-06 22:38:47 -08:00
test_ale_lint_command.vader Get tests to pass in Vim 8.1 2018-07-23 20:41:48 +01:00
test_ale_toggle.vader Get tests to pass in Vim 8.1 2018-07-23 20:41:48 +01:00
test_ale_var.vader Remove the redundant fix_buffer_data vars and filename variables 2018-07-22 22:31:46 +01:00
test_alejobstarted_autocmd.vader #2017 Add support for display results from other sources 2018-10-29 18:28:28 +00:00
test_alelint_autocmd.vader #2017 Add support for display results from other sources 2018-10-29 18:28:28 +00:00
test_autocmd_commands.vader Test that we CleanupEveryBuffer when vim supports it 2018-09-17 21:26:25 +01:00
test_backwards_compatibility.vader
test_balloon_messages.vader Close #1494 - Prefer displaying higher severity problems for cursor messages, balloons, and highlights 2018-04-10 21:05:22 +01:00
test_bingo_find_project_root.vader Add support for bingo (#2165) 2019-01-05 19:12:55 +00:00
test_c_flag_parsing.vader Improve perf for compile dbs in large projects 2019-01-06 00:41:57 -08:00
test_checkingbuffer_autocmd.vader #2017 Add support for display results from other sources 2018-10-29 18:28:28 +00:00
test_cleanup.vader Clean up ALE linter buffer data when buffers are deleted, not unloaded 2017-12-19 15:35:57 +00:00
test_command_chain.vader #2017 Simplify lint cycles for supporting other sources later 2018-10-29 11:29:21 +00:00
test_csslint_config_detection.vader Fix the mscs tests on Windows, and use the improved Simplify for all tests instead. 2017-12-19 18:23:09 +00:00
test_cursor_warnings.vader Close #1494 - Prefer displaying higher severity problems for cursor messages, balloons, and highlights 2018-04-10 21:05:22 +01:00
test_disabling_ale.vader
test_dockerfile_hadolint_linter.vader Added tests for hadolint 2018-01-29 22:21:50 +01:00
test_engine_invocation.vader
test_engine_lsp_response_handling.vader Try to fix the tests on Windows 2018-10-30 20:55:35 +00:00
test_env_function.vader Massively reduce the amount of code needed for linter tests 2018-07-15 18:28:28 +01:00
test_errors_removed_after_filetype_changed.vader Get tests to pass in Vim 8.1 2018-07-23 20:41:48 +01:00
test_eslint_executable_detection.vader Revert "#1459 Always run ESLint in the directory of the file being checked" 2018-08-10 11:49:17 +01:00
test_filetype_linter_defaults.vader #1754 Require snake_case names for linters in the codebase 2018-07-24 10:05:44 +01:00
test_filetype_mapping.vader
test_find_nearest_directory.vader Fix the mscs tests on Windows, and use the improved Simplify for all tests instead. 2017-12-19 18:23:09 +00:00
test_find_references.vader Update FindReferences tests 2018-12-31 14:59:50 -07:00
test_flow_command.vader Close #1504 - Add an option for removing --respect-pragma for flow 2018-04-15 12:25:15 +01:00
test_format_command.vader Support formatting escaped executable names into commands with %e 2018-07-05 20:56:31 +01:00
test_format_temporary_file_creation.vader Try to make tests pass on Windows again 2018-07-16 14:18:50 +01:00
test_function_arg_count.vader
test_fuzzy_json_decode.vader Fix #988 - Support --fix-dry-run for ESLint by processing the JSON output 2017-11-22 23:23:14 +00:00
test_get_abspath.vader Fix #1210 - Fix a Windows path issue which broke TSLint 2017-12-18 13:27:59 +00:00
test_get_loclist.vader
test_getmatches.vader
test_go_to_definition.vader Add versions of ALEGoToDefinition that open in splits 2018-12-19 18:35:56 -05:00
test_gradle_build_classpath_command.vader ale#path#CdString include ale#Escape 2018-10-23 23:20:27 +09:00
test_gradle_find_executable.vader Fix the mscs tests on Windows, and use the improved Simplify for all tests instead. 2017-12-19 18:23:09 +00:00
test_gradle_find_project_root.vader Fix the mscs tests on Windows, and use the improved Simplify for all tests instead. 2017-12-19 18:23:09 +00:00
test_highlight_placement.vader Make highlight tests pass more in Neovim 0.3 2018-07-01 11:52:02 +01:00
test_highlight_position_chunking.vader
test_history_saving.vader #2017 Simplify lint cycles for supporting other sources later 2018-10-29 11:29:21 +00:00
test_hover.vader #1520 - Add an :ALEDocumentation for tsserver 2018-12-10 20:08:28 +00:00
test_ignoring_linters.vader #2017 Add support for display results from other sources 2018-10-29 18:28:28 +00:00
test_kotlin_languageserver_path_detection.vader Add kotlin language server support (#1725) 2018-07-15 18:54:18 +01:00
test_line_join.vader #830 Implement a socket wrapper API for use with LSP connections 2018-07-02 23:49:47 +01:00
test_lint_file_linters.vader #2017 Simplify lint cycles for supporting other sources later 2018-10-29 11:29:21 +00:00
test_lint_on_enter_when_file_changed.vader Get tests to pass in Vim 8.1 2018-07-23 20:41:48 +01:00
test_lint_on_filetype_changed.vader Fix #1619 - Rewrite lint on enter events so they behave better 2018-07-17 00:18:34 +01:00
test_linter_defintion_processing.vader Add a lsp_config_callback linter option 2018-10-31 08:42:42 -07:00
test_linter_retrieval.vader #927 Allow b:ale_linter_aliases to be set to a String 2018-10-26 09:22:52 +01:00
test_linter_type_mapping.vader #2017 Add support for display results from other sources 2018-10-29 18:28:28 +00:00
test_linting_blacklist.vader #2017 Simplify lint cycles for supporting other sources later 2018-10-29 11:29:21 +00:00
test_linting_updates_loclist.vader Get tests running and passing with NeoVim 0.2 and 0.3 2018-06-28 13:53:49 +01:00
test_list_formatting.vader Get tests to pass in Vim 8.1 2018-07-23 20:41:48 +01:00
test_list_opening.vader Get tests to pass in Vim 8.1 2018-07-23 20:41:48 +01:00
test_list_titles.vader Get tests to pass in Vim 8.1 2018-07-23 20:41:48 +01:00
test_load_all_linters.vader
test_loclist_binary_search.vader Close #1494 - Prefer displaying higher severity problems for cursor messages, balloons, and highlights 2018-04-10 21:05:22 +01:00
test_loclist_corrections.vader #2017 Add support for display results from other sources 2018-10-29 18:28:28 +00:00
test_loclist_jumping.vader Close #1494 - Prefer displaying higher severity problems for cursor messages, balloons, and highlights 2018-04-10 21:05:22 +01:00
test_loclist_sorting.vader Close #1494 - Prefer displaying higher severity problems for cursor messages, balloons, and highlights 2018-04-10 21:05:22 +01:00
test_nearest_file_search.vader Fix the mscs tests on Windows, and use the improved Simplify for all tests instead. 2017-12-19 18:23:09 +00:00
test_no_linting_on_write_quit.vader #2132 Change (buffer, lines) fixer functions to (buffer, done, lines) 2018-12-18 11:13:28 +00:00
test_other_sources.vader #2017 Add support for display results from other sources 2018-10-29 18:28:28 +00:00
test_path_dirname.vader Add support for parsing compile_commands.json files for C compilers 2018-07-29 19:24:27 +01:00
test_path_equality.vader Fix the mscs tests on Windows, and use the improved Simplify for all tests instead. 2017-12-19 18:23:09 +00:00
test_path_upwards.vader Fix #1210 - Fix a Windows path issue which broke TSLint 2017-12-18 13:27:59 +00:00
test_path_uri.vader #1149 Fix conversion from URIs to filenames on Windows 2017-11-20 00:02:33 +00:00
test_pattern_options.vader Fix #1619 - Rewrite lint on enter events so they behave better 2018-07-17 00:18:34 +01:00
test_phpcs_include_code.vader Add test for phpcs error code 2017-10-26 12:22:34 -04:00
test_prepare_command.vader Fix a test on Windows 2019-01-04 14:51:55 +00:00
test_puppet_path_detection.vader Start of vader tests for puppet root detection 2018-07-05 21:25:03 +02:00
test_python_pipenv.vader Add python_[linter]_auto_pipenv options for python linters (fixes #1656) 2018-09-15 22:10:46 -04:00
test_python_virtualenv.vader
test_quickfix_deduplication.vader Close #1494 - Prefer displaying higher severity problems for cursor messages, balloons, and highlights 2018-04-10 21:05:22 +01:00
test_quitting_variable.vader Fix #1619 - Rewrite lint on enter events so they behave better 2018-07-17 00:18:34 +01:00
test_redundant_tsserver_rendering_avoided.vader #2017 Add support for display results from other sources 2018-10-29 18:28:28 +00:00
test_regex_escaping.vader
test_resolve_local_path.vader Fix the mscs tests on Windows, and use the improved Simplify for all tests instead. 2017-12-19 18:23:09 +00:00
test_results_not_cleared_when_opening_loclist.vader Get tests to pass in Vim 8.1 2018-07-23 20:41:48 +01:00
test_sandbox_execution.vader #2017 Simplify lint cycles for supporting other sources later 2018-10-29 11:29:21 +00:00
test_semver_utils.vader Simplfy semver handling and share the semver version cache across everything 2017-11-12 10:56:53 +00:00
test_set_list_timers.vader Get tests to pass in Vim 8.1 2018-07-23 20:41:48 +01:00
test_setting_loclist_from_another_buffer.vader Get tests to pass in Vim 8.1 2018-07-23 20:41:48 +01:00
test_setting_problems_found_in_previous_buffers.vader #2017 Add support for display results from other sources 2018-10-29 18:28:28 +00:00
test_shell_detection.vader Fix #1051 - Support ash and dash for shellcheck and the sh linter 2017-10-26 21:21:42 +01:00
test_should_do_nothing_conditions.vader #1875 Do not lint and so on when an operator is pending 2018-09-03 13:59:56 +01:00
test_sml_command.vader Fix the mscs tests on Windows, and use the improved Simplify for all tests instead. 2017-12-19 18:23:09 +00:00
test_socket_connections.vader #830 Make the LSP socket code so far use the new socket API 2018-07-03 00:30:26 +01:00
test_statusline.vader Remove deprecated code for the 2.0 release 2018-07-04 08:36:34 +01:00
test_swiftlint_executable_detection.vader Add support for Pod based SwiftLint (#2122) 2018-12-07 15:20:58 -07:00
test_symbol_search.vader Implement LSP symbol search 2018-10-31 16:13:31 +00:00
test_temporary_file_management.vader #2017 Simplify lint cycles for supporting other sources later 2018-10-29 11:29:21 +00:00
test_tmpdir_wrapper.vader Only temporarily replace TMPDIR if it's defined to be an empty string 2018-07-16 08:45:55 +01:00
test_verilog_verilator_options.vader #2017 Simplify lint cycles for supporting other sources later 2018-10-29 11:29:21 +00:00
test_vim8_processid_parsing.vader
test_windows_escaping.vader
test_wrap_comand.vader Fix a command wrapper test on Windows 2018-01-17 18:11:20 +00:00
test_writefile_function.vader #1872 Remove extra carriage returns when fixing files on Windows 2018-09-19 19:28:57 +01:00
vimrc Fix #1716 - Replace tempdir() with a wrapper to preserve TMPDIR 2018-07-12 13:05:59 +01:00