ale = prequire("ale")
 
 if ale then
-  vim.keymap.set({'n', 'i'}, '<F7>', [[<cmd>ALELint<CR>]])
-  vim.keymap.set({'n', 'i'}, '<F8>', [[<cmd>ALEFix<CR>]])
+       vim.keymap.set({ "n", "i" }, "<F7>", [[<cmd>ALELint<CR>]])
+       vim.keymap.set({ "n", "i" }, "<F8>", [[<cmd>ALEFix<CR>]])
 
-  vim.keymap.set('n', '<C-k>', '<Plug>(ale_previous_wrap)')
-  vim.keymap.set('n', '<C-j>', '<Plug>(ale_next_wrap)')
+       vim.keymap.set("n", "<C-k>", "<Plug>(ale_previous_wrap)")
+       vim.keymap.set("n", "<C-j>", "<Plug>(ale_next_wrap)")
 
-  vim.g.ale_completion_enabled = 0
-  vim.g.ale_echo_msg_format = '%code: %%s [%linter%]'
-  vim.g.ale_fixers = { ['*'] = { "remove_trailing_lines", "trim_whitespace" } }
-  vim.g.ale_virtualtext_cursor = 'current'
+       vim.g.ale_completion_enabled = true
+       vim.g.ale_echo_msg_format = "%code: %%s [%linter%]"
+       vim.g.ale_fixers = { ["*"] = { "remove_trailing_lines", "trim_whitespace" } }
+       vim.g.ale_virtualtext_cursor = "current"
 
-  vim.g.ale_lint_on_text_changed = 'normal'
-  vim.g.ale_lint_on_insert_leave = true
-  vim.g.ale_lint_on_enter = true
+       vim.g.ale_open_list = true
+       vim.g.ale_use_neovim_diagnostics_api = false
 
-  vim.opt_local.signcolumn = 'no'
+       vim.g.ale_lint_on_text_changed = false
+       vim.g.ale_lint_on_insert_leave = true
+       vim.g.ale_lint_on_enter = true
+
+       -- Cannot use `vim.opt_local.signcolumn` due to
+       -- https://github.com/neovim/neovim/issues/14670
+       vim.cmd("setlocal signcolumn=no")
 else
-  print 'ALE is not installed'
+       print("ALE is not installed")
 end