From dd6f34e7089a8a06fbd239b8f3dba46b0074010a Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Wed, 25 Dec 2019 23:40:23 +0900 Subject: Fix settings --- settings/bash-language-server.vim | 3 ++- settings/clangd.vim | 2 +- settings/clojure-lsp.vim | 2 +- settings/css-languageserver.vim | 2 +- settings/docker-langserver.vim | 3 ++- settings/eclipse-jdt-ls.vim | 2 +- settings/elm-language-server.vim | 2 +- settings/emmylua-ls.vim | 2 +- settings/fortls.vim | 1 + settings/gopls.vim | 2 +- settings/html-languageserver.vim | 2 +- settings/intelephense.vim | 2 +- settings/javascript-typescript-langserver.vim | 2 +- settings/json-languageserver.vim | 2 +- settings/kotlin-language-server.vim | 2 +- settings/lsp4xml.vim | 3 ++- settings/metals.vim | 3 ++- settings/omnisharp-lsp.vim | 3 ++- settings/pyls.vim | 2 +- settings/rls.vim | 2 +- settings/solargraph.vim | 2 +- settings/terraform-lsp.vim | 3 ++- settings/typescript-language-server.vim | 2 +- settings/vim-language-server.vim | 10 +++++----- settings/yaml-language-server.vim | 3 ++- 25 files changed, 36 insertions(+), 28 deletions(-) (limited to 'settings') diff --git a/settings/bash-language-server.vim b/settings/bash-language-server.vim index a7e28da..b1a7f9a 100644 --- a/settings/bash-language-server.vim +++ b/settings/bash-language-server.vim @@ -3,7 +3,8 @@ augroup vimlsp_settings_bash_language_server LspRegisterServer { \ 'name': 'bash-language-server', \ 'cmd': {server_info->lsp_settings#get('bash-language-server', 'cmd', [lsp_settings#exec_path('bash-language-server'), 'start'])}, - \ 'root_uri':{server_info->lsp_settings#get('bash-language-server', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))}, + \ 'root_uri':{server_info->lsp_settings#get('bash-language-server', 'root_uri', lsp_settings#root_uri(['.git/']))}, + \ 'initialization_options': lsp_settings#get('bash-language-server', 'initialization_options', v:null), \ 'whitelist': lsp_settings#get('bash-language-server', 'whitelist', ['sh']), \ 'blacklist': lsp_settings#get('bash-language-server', 'blacklist', []), \ 'config': lsp_settings#get('bash-language-server', 'config', {}), diff --git a/settings/clangd.vim b/settings/clangd.vim index 26632a9..a593dfb 100644 --- a/settings/clangd.vim +++ b/settings/clangd.vim @@ -3,7 +3,7 @@ augroup vimlsp_settings_clangd LspRegisterServer { \ 'name': 'clangd', \ 'cmd': {server_info->lsp_settings#get('clangd', 'cmd', [lsp_settings#exec_path('clangd')])}, - \ 'root_uri':{server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/']))}, + \ 'root_uri':{server_info->lsp_settings#get('clangd', 'root_uri', lsp_settings#root_uri(['.git/']))}, \ 'initialization_options': lsp_settings#get('clangd', 'initialization_options', v:null), \ 'whitelist': lsp_settings#get('clangd', 'whitelist', ['c', 'cpp', 'objc', 'objcpp']), \ 'blacklist': lsp_settings#get('clangd', 'blacklist', []), diff --git a/settings/clojure-lsp.vim b/settings/clojure-lsp.vim index 8f727fe..f50e637 100644 --- a/settings/clojure-lsp.vim +++ b/settings/clojure-lsp.vim @@ -3,7 +3,7 @@ augroup vimlsp_settings_clojure_lsp LspRegisterServer { \ 'name': 'clojure-lsp', \ 'cmd': {server_info->lsp_settings#get('clojure-lsp', 'cmd', [lsp_settings#exec_path('clojure-lsp')])}, - \ 'root_uri':{server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/']))}, + \ 'root_uri':{server_info->lsp_settings#get('clojure-lsp', 'root_uri', lsp_settings#root_uri(['.git/']))}, \ 'initialization_options': lsp_settings#get('clojure-lsp', 'initialization_options', v:null), \ 'whitelist': lsp_settings#get('clojure-lsp', 'whitelist', ['clojure']), \ 'blacklist': lsp_settings#get('clojure-lsp', 'blacklist', []), diff --git a/settings/css-languageserver.vim b/settings/css-languageserver.vim index 215e7e9..12707df 100644 --- a/settings/css-languageserver.vim +++ b/settings/css-languageserver.vim @@ -3,7 +3,7 @@ augroup vimlsp_settings_css_languageserver LspRegisterServer { \ 'name': 'css-languageserver', \ 'cmd': {server_info->lsp_settings#get('css-languageserver', 'cmd', [lsp_settings#exec_path('css-languageserver'), '--stdio'])}, - \ 'root_uri':{server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/']))}, + \ 'root_uri':{server_info->lsp_settings#get('css-languageserver', 'root_uri', lsp_settings#root_uri(['.git/']))}, \ 'initialization_options': lsp_settings#get('css-languageserver', 'initialization_options', v:null), \ 'whitelist': lsp_settings#get('css-languageserver', 'whitelist', ['css']), \ 'blacklist': lsp_settings#get('css-languageserver', 'blacklist', []), diff --git a/settings/docker-langserver.vim b/settings/docker-langserver.vim index 7fbf78c..c8e4443 100644 --- a/settings/docker-langserver.vim +++ b/settings/docker-langserver.vim @@ -3,7 +3,8 @@ augroup vimlsp_settings_dockerfile_language_server_nodejs LspRegisterServer { \ 'name': 'docker-langserver', \ 'cmd': {server_info->lsp_settings#get('docker-langserver', 'cmd', [lsp_settings#exec_path('docker-langserver'), '--stdio'])}, - \ 'root_uri':{server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/']))}, + \ 'root_uri':{server_info->lsp_settings#get('docker-langserver', 'root_uri', lsp_settings#root_uri(['.git/']))}, + \ 'initialization_options': lsp_settings#get('docker-langserver', 'initialization_options', v:null), \ 'whitelist': lsp_settings#get('docker-langserver', 'whitelist', ['dockerfile']), \ 'blacklist': lsp_settings#get('docker-langserver', 'blacklist', []), \ 'config': lsp_settings#get('docker-langserver', 'config', {}), diff --git a/settings/eclipse-jdt-ls.vim b/settings/eclipse-jdt-ls.vim index 32f9113..5e72f81 100644 --- a/settings/eclipse-jdt-ls.vim +++ b/settings/eclipse-jdt-ls.vim @@ -3,7 +3,7 @@ augroup vimlsp_settings_eclipse_jdt_ls LspRegisterServer { \ 'name': 'eclipse-jdt-ls', \ 'cmd': {server_info->lsp_settings#get('eclipse-jdt-ls', 'cmd', [lsp_settings#exec_path('eclipse-jdt-ls')])}, - \ 'root_uri':{server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/']))}, + \ 'root_uri':{server_info->lsp_settings#get('eclipse-jdt-ls', 'root_uri', lsp_settings#root_uri(['.git/', 'pom.xml', 'build.gradle']))}, \ 'initialization_options': lsp_settings#get('eclipse-jdt-ls', 'initialization_options', v:null), \ 'whitelist': lsp_settings#get('eclipse-jdt-ls', 'whitelist', ['java']), \ 'blacklist': lsp_settings#get('eclipse-jdt-ls', 'blacklist', []), diff --git a/settings/elm-language-server.vim b/settings/elm-language-server.vim index 6dcedb6..63b25d3 100644 --- a/settings/elm-language-server.vim +++ b/settings/elm-language-server.vim @@ -3,7 +3,7 @@ augroup vimlsp_settings_elm_language_server LspRegisterServer { \ 'name': 'elm-language-server', \ 'cmd': {server_info->lsp_settings#get('elm-language-server', 'cmd', [lsp_settings#exec_path('elm-language-server')])}, - \ 'root_uri':{server_info->lsp_settings#get('elm-language-server', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/', 'elm.json'])))}, + \ 'root_uri':{server_info->lsp_settings#get('elm-language-server', 'root_uri', lsp_settings#root_uri(['.git/', 'elm.json']))}, \ 'initialization_options': lsp_settings#get('elm-language-server', 'initialization_options', {'elmPath': 'elm', 'runtime': 'node', 'elmFormatPath': 'elm-format', 'elmTestPath': 'elm-test'}), \ 'whitelist': lsp_settings#get('elm-language-server', 'whitelist', ['elm', 'elm.tsx']), \ 'blacklist': lsp_settings#get('elm-language-server', 'blacklist', []), diff --git a/settings/emmylua-ls.vim b/settings/emmylua-ls.vim index 92c435c..40af50d 100644 --- a/settings/emmylua-ls.vim +++ b/settings/emmylua-ls.vim @@ -3,7 +3,7 @@ augroup vimlsp_settings_emmylua_ls LspRegisterServer { \ 'name': 'emmylua-ls', \ 'cmd': {server_info->lsp_settings#get('emmylua-ls', 'cmd', [lsp_settings#exec_path('emmylua-ls')])}, - \ 'root_uri':{server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/']))}, + \ 'root_uri':{server_info->lsp_settings#get('emmylua-ls', 'root_uri', lsp_settings#root_uri(['.git/']))}, \ 'initialization_options': lsp_settings#get('emmylua-ls', 'initialization_options', v:null), \ 'whitelist': lsp_settings#get('emmylua-ls', 'whitelist', ['lua']), \ 'blacklist': lsp_settings#get('emmylua-ls', 'blacklist', []), diff --git a/settings/fortls.vim b/settings/fortls.vim index 3aced00..49a8aff 100644 --- a/settings/fortls.vim +++ b/settings/fortls.vim @@ -3,6 +3,7 @@ augroup vimlsp_settings_fortls LspRegisterServer { \ 'name': 'fortls', \ 'cmd': {server_info->lsp_settings#get('fortls', 'cmd', [lsp_settings#exec_path('fortls')])}, + \ 'root_uri':{server_info->lsp_settings#get('fortls', 'root_uri', lsp_settings#root_uri(['.git/']))}, \ 'initialization_options': lsp_settings#get('fortls', 'initialization_options', v:null), \ 'whitelist': lsp_settings#get('fortls', 'whitelist', ['fortran']), \ 'blacklist': lsp_settings#get('fortls', 'blacklist', []), diff --git a/settings/gopls.vim b/settings/gopls.vim index 86965cc..3a0b93b 100644 --- a/settings/gopls.vim +++ b/settings/gopls.vim @@ -3,7 +3,7 @@ augroup vimlsp_settings_gopls LspRegisterServer { \ 'name': 'gopls', \ 'cmd': {server_info->lsp_settings#get('gopls', 'cmd', [lsp_settings#exec_path('gopls')])}, - \ 'root_uri':{server_info->lsp_settings#get('gopls', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/', 'go.mod'])))}, + \ 'root_uri':{server_info->lsp_settings#get('gopls', 'root_uri', lsp_settings#root_uri(['.git/', 'go.mod']))}, \ 'initialization_options': lsp_settings#get('gopls', 'initialization_options', {"diagnostics": "true"}), \ 'whitelist': lsp_settings#get('gopls', 'whitelist', ['go']), \ 'blacklist': lsp_settings#get('gopls', 'blacklist', []), diff --git a/settings/html-languageserver.vim b/settings/html-languageserver.vim index 0273ac6..fe741fb 100644 --- a/settings/html-languageserver.vim +++ b/settings/html-languageserver.vim @@ -3,7 +3,7 @@ augroup vimlsp_settings_html_languageserver LspRegisterServer { \ 'name': 'html-languageserver', \ 'cmd': {server_info->lsp_settings#get('html-languageserver', 'cmd', [lsp_settings#exec_path('html-languageserver'), '--stdio'])}, - \ 'root_uri':{server_info->lsp_settings#get('html-langserver', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))}, + \ 'root_uri':{server_info->lsp_settings#get('html-langserver', 'root_uri', lsp_settings#root_uri(['.git/']))}, \ 'initialization_options': lsp_settings#get('html-languageserver', 'initialization_options', {'embeddedLanguages': {'css': v:true, 'html': v:true}}), \ 'whitelist': lsp_settings#get('html-languageserver', 'whitelist', ['html']), \ 'blacklist': lsp_settings#get('html-languageserver', 'blacklist', []), diff --git a/settings/intelephense.vim b/settings/intelephense.vim index 4a7c1d5..36f4f07 100644 --- a/settings/intelephense.vim +++ b/settings/intelephense.vim @@ -3,7 +3,7 @@ augroup vimlsp_settings_intelephense_server LspRegisterServer { \ 'name': 'intelephense', \ 'cmd': {server_info->lsp_settings#get('intelephense', 'cmd', [lsp_settings#exec_path('intelephense'), '--stdio'])}, - \ 'root_uri':{server_info->lsp_settings#get('intelephense', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))}, + \ 'root_uri':{server_info->lsp_settings#get('intelephense', 'root_uri', lsp_settings#root_uri(['.git/']))}, \ 'initialization_options': lsp_settings#get('intelephense', 'initialization_options', {}), \ 'whitelist': lsp_settings#get('intelephense', 'whitelist', ['php']), \ 'blacklist': lsp_settings#get('intelephense', 'blacklist', []), diff --git a/settings/javascript-typescript-langserver.vim b/settings/javascript-typescript-langserver.vim index 71126da..d277b89 100644 --- a/settings/javascript-typescript-langserver.vim +++ b/settings/javascript-typescript-langserver.vim @@ -3,7 +3,7 @@ augroup vimlsp_settings_javascript_typescript_langserver LspRegisterServer { \ 'name': 'javascript-typescript-langserver', \ 'cmd': {server_info->lsp_settings#get('javascript-typescript-langserver', 'cmd', [lsp_settings#exec_path('javascript-typescript-langserver')])}, - \ 'root_uri':{server_info->lsp_settings#get('javascript-typescript-langserver', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))}, + \ 'root_uri':{server_info->lsp_settings#get('javascript-typescript-langserver', 'root_uri', lsp_settings#root_uri(['.git/']))}, \ 'initialization_options': lsp_settings#get('javascript-typescript-langserver', 'initialization_options', {"diagnostics": "true"}), \ 'whitelist': lsp_settings#get('javascript-typescript-langserver', 'whitelist', ['javascript']), \ 'blacklist': lsp_settings#get('javascript-typescript-langserver', 'blacklist', []), diff --git a/settings/json-languageserver.vim b/settings/json-languageserver.vim index 626df64..e1f3375 100644 --- a/settings/json-languageserver.vim +++ b/settings/json-languageserver.vim @@ -3,7 +3,7 @@ augroup vimlsp_settings_json_languageserver LspRegisterServer { \ 'name': 'json-languageserver', \ 'cmd': {server_info->lsp_settings#get('json-languageserver', 'cmd', [lsp_settings#exec_path('json-languageserver'), '--stdio'])}, - \ 'root_uri':{server_info->lsp_settings#get('json-langserver', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))}, + \ 'root_uri':{server_info->lsp_settings#get('json-languageserver', 'root_uri', lsp_settings#root_uri(['.git/']))}, \ 'initialization_options': lsp_settings#get('json-languageserver', 'initialization_options', v:null), \ 'whitelist': lsp_settings#get('json-languageserver', 'whitelist', ['json']), \ 'blacklist': lsp_settings#get('json-languageserver', 'blacklist', []), diff --git a/settings/kotlin-language-server.vim b/settings/kotlin-language-server.vim index 479805b..6909653 100644 --- a/settings/kotlin-language-server.vim +++ b/settings/kotlin-language-server.vim @@ -3,7 +3,7 @@ augroup vimlsp_settings_kotlin_language_server LspRegisterServer { \ 'name': 'kotlin-language-server', \ 'cmd': {server_info->lsp_settings#get('kotlin-language-server', 'cmd', [lsp_settings#exec_path('kotlin-language-server')])}, - \ 'root_uri':{server_info->lsp_settings#get('kotlin-language-server', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))}, + \ 'root_uri':{server_info->lsp_settings#get('kotlin-language-server', 'root_uri', lsp_settings#root_uri(['.git/']))}, \ 'initialization_options': lsp_settings#get('kotlin-language-server', 'initialization_options', v:null), \ 'whitelist': lsp_settings#get('kotlin-language-server', 'whitelist', ['kotlin']), \ 'blacklist': lsp_settings#get('kotlin-language-server', 'blacklist', []), diff --git a/settings/lsp4xml.vim b/settings/lsp4xml.vim index 79beafe..a24a0d0 100644 --- a/settings/lsp4xml.vim +++ b/settings/lsp4xml.vim @@ -3,7 +3,8 @@ augroup vimlsp_settings_lsp4xml LspRegisterServer { \ 'name': 'lsp4xml', \ 'cmd': {server_info->lsp_settings#get('lsp4xml', 'cmd', [lsp_settings#exec_path('lsp4xml')])}, - \ 'root_uri':{server_info->lsp_settings#get('lsp4xml', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))}, + \ 'root_uri':{server_info->lsp_settings#get('lsp4xml', 'root_uri', lsp_settings#root_uri(['.git/']))}, + \ 'initialization_options': lsp_settings#get('lsp4xml', 'initialization_options', v:null), \ 'whitelist': lsp_settings#get('lsp4xml', 'whitelist', ['xml']), \ 'blacklist': lsp_settings#get('lsp4xml', 'blacklist', []), \ 'config': lsp_settings#get('lsp4xml', 'config', {}), diff --git a/settings/metals.vim b/settings/metals.vim index 55b6981..70f28d8 100644 --- a/settings/metals.vim +++ b/settings/metals.vim @@ -3,7 +3,8 @@ augroup vimlsp_settings_metals LspRegisterServer { \ 'name': 'metals', \ 'cmd': {server_info->lsp_settings#get('metals', 'cmd', [lsp_settings#exec_path('metals')])}, - \ 'root_uri':{server_info->lsp_settings#get('metals', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/', 'build.sbt'])))}, + \ 'root_uri':{server_info->lsp_settings#get('metals', 'root_uri', lsp_settings#root_uri(['.git/', 'build.sbt']))}, + \ 'initialization_options': lsp_settings#get('metals', 'initialization_options', v:null), \ 'whitelist': lsp_settings#get('metals', 'whitelist', ['scala', 'sbt']), \ 'blacklist': lsp_settings#get('metals', 'blacklist', []), \ 'config': lsp_settings#get('metals', 'config', {}), diff --git a/settings/omnisharp-lsp.vim b/settings/omnisharp-lsp.vim index 1ce7fc4..cfa0a94 100644 --- a/settings/omnisharp-lsp.vim +++ b/settings/omnisharp-lsp.vim @@ -2,7 +2,8 @@ augroup vimlsp_settings_omnisharp_lsp au! LspRegisterServer { \ 'name': 'omnisharp-lsp', - \ 'root_uri':{server_info->lsp_settings#get('omnisharp-lsp', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))}, + \ 'cmd': {server_info->lsp_settings#get('omnisharp-lsp', 'cmd', [lsp_settings#exec_path('omnisharp-lsp')])}, + \ 'root_uri':{server_info->lsp_settings#get('omnisharp-lsp', 'root_uri', lsp_settings#root_uri(['.git/']))}, \ 'initialization_options': lsp_settings#get('omnisharp-lsp', 'initialization_options', v:null), \ 'whitelist': lsp_settings#get('omnisharp-lsp', 'whitelist', ['cs']), \ 'blacklist': lsp_settings#get('omnisharp-lsp', 'blacklist', []), diff --git a/settings/pyls.vim b/settings/pyls.vim index db7db34..f97a196 100644 --- a/settings/pyls.vim +++ b/settings/pyls.vim @@ -3,7 +3,7 @@ augroup vimlsp_settings_pyls LspRegisterServer { \ 'name': 'pyls', \ 'cmd': {server_info->lsp_settings#get('pyls', 'cmd', [lsp_settings#exec_path('pyls')])}, - \ 'root_uri':{server_info->lsp_settings#get('pyls', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))}, + \ 'root_uri':{server_info->lsp_settings#get('pyls', 'root_uri', lsp_settings#root_uri(['.git/']))}, \ 'initialization_options': lsp_settings#get('pyls', 'initialization_options', v:null), \ 'whitelist': lsp_settings#get('pyls', 'whitelist', ['python']), \ 'blacklist': lsp_settings#get('pyls', 'blacklist', []), diff --git a/settings/rls.vim b/settings/rls.vim index 10f2376..45dcbfd 100644 --- a/settings/rls.vim +++ b/settings/rls.vim @@ -3,7 +3,7 @@ augroup vimlsp_settings_rls LspRegisterServer { \ 'name': 'rls', \ 'cmd': {server_info->lsp_settings#get('rls', 'cmd', [lsp_settings#exec_path('rls')])}, - \ 'root_uri':{server_info->lsp_settings#get('rls', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))}, + \ 'root_uri':{server_info->lsp_settings#get('rls', 'root_uri', lsp_settings#root_uri(['.git/']))}, \ 'initialization_options': lsp_settings#get('rls', 'initialization_options', v:null), \ 'whitelist': lsp_settings#get('rls', 'whitelist', ['rust']), \ 'blacklist': lsp_settings#get('rls', 'blacklist', []), diff --git a/settings/solargraph.vim b/settings/solargraph.vim index 796ee0a..8081a2c 100644 --- a/settings/solargraph.vim +++ b/settings/solargraph.vim @@ -3,7 +3,7 @@ augroup vimlsp_settings_solargraph LspRegisterServer { \ 'name': 'solargraph', \ 'cmd': {server_info->lsp_settings#get('solargraph', 'cmd', [lsp_settings#exec_path('solargraph'), 'stdio'])}, - \ 'root_uri':{server_info->lsp_settings#get('solargraph', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))}, + \ 'root_uri':{server_info->lsp_settings#get('solargraph', 'root_uri', lsp_settings#root_uri(['.git/']))}, \ 'initialization_options': lsp_settings#get('solargraph', 'initialization_options', {"diagnostics": "true"}), \ 'whitelist': lsp_settings#get('solargraph', 'whitelist', ['ruby']), \ 'blacklist': lsp_settings#get('solargraph', 'blacklist', []), diff --git a/settings/terraform-lsp.vim b/settings/terraform-lsp.vim index 1df13cb..113597f 100644 --- a/settings/terraform-lsp.vim +++ b/settings/terraform-lsp.vim @@ -3,7 +3,8 @@ augroup vimlsp_settings_terraform_lsp LspRegisterServer { \ 'name': 'terraform-lsp', \ 'cmd': {server_info->lsp_settings#get('terraform-lsp', 'cmd', [lsp_settings#exec_path('terraform-lsp')])}, - \ 'root_uri':{server_info->lsp_settings#get('terraform-lsp', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))}, + \ 'root_uri':{server_info->lsp_settings#get('terraform-lsp', 'root_uri', lsp_settings#root_uri(['.git/']))}, + \ 'initialization_options': lsp_settings#get('terraform-lsp', 'initialization_options', v:null), \ 'whitelist': lsp_settings#get('terraform-lsp', 'whitelist', ['terraform']), \ 'blacklist': lsp_settings#get('terraform-lsp', 'blacklist', []), \ 'config': lsp_settings#get('terraform-lsp', 'config', {}), diff --git a/settings/typescript-language-server.vim b/settings/typescript-language-server.vim index 400452a..1147976 100644 --- a/settings/typescript-language-server.vim +++ b/settings/typescript-language-server.vim @@ -3,7 +3,7 @@ augroup vimlsp_settings_typescript_language_server LspRegisterServer { \ 'name': 'typescript-language-server', \ 'cmd': {server_info->lsp_settings#get('typescript-language-server', 'cmd', [lsp_settings#exec_path('typescript-language-server'), '--stdio'])}, - \ 'root_uri':{server_info->lsp_settings#get('typescript-language-server', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))}, + \ 'root_uri':{server_info->lsp_settings#get('typescript-language-server', 'root_uri', lsp_settings#root_uri(['.git/', 'package.json']))}, \ 'initialization_options': lsp_settings#get('typescript-language-server', 'initialization_options', {"diagnostics": "true"}), \ 'whitelist': lsp_settings#get('typescript-language-server', 'whitelist', ['typescript', 'typescript.tsx']), \ 'blacklist': lsp_settings#get('typescript-language-server', 'blacklist', []), diff --git a/settings/vim-language-server.vim b/settings/vim-language-server.vim index f3497b9..d3c7c51 100644 --- a/settings/vim-language-server.vim +++ b/settings/vim-language-server.vim @@ -3,11 +3,11 @@ augroup vimlsp_settings_vim_language_server LspRegisterServer { \ 'name': 'vim-language-server', \ 'cmd': {server_info->lsp_settings#get('vim-language-server', 'cmd', [lsp_settings#exec_path('vim-language-server'), '--stdio'])}, - \ 'root_uri':{server_info->lsp_settings#get('vim-language-server', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/', '.vim/', 'vimfiles/'])))}, + \ 'root_uri':{server_info->lsp_settings#get('vim-language-server', 'root_uri', lsp_settings#root_uri(['.git/', '.vim/', 'vimfiles/']))}, \ 'initialization_options': { 'vimruntime': $VIMRUNTIME, 'runtimepath': &rtp }, - \ 'whitelist': ['vim'], - \ 'blacklist': lsp_settings#get('bash-language-server', 'blacklist', []), - \ 'config': lsp_settings#get('bash-language-server', 'config', {}), - \ 'workspace_config': lsp_settings#get('bash-language-server', 'workspace_config', {}), + \ 'whitelist': lsp_settings#get('vim-language-server', 'whitelist', ['vim']), + \ 'blacklist': lsp_settings#get('vimbash-language-server', 'blacklist', []), + \ 'config': lsp_settings#get('vim-language-server', 'config', {}), + \ 'workspace_config': lsp_settings#get('vim-language-server', 'workspace_config', {}), \ } augroup END diff --git a/settings/yaml-language-server.vim b/settings/yaml-language-server.vim index 83e36e7..7fffc67 100644 --- a/settings/yaml-language-server.vim +++ b/settings/yaml-language-server.vim @@ -3,7 +3,8 @@ augroup vimlsp_settings_yaml_language_server LspRegisterServer { \ 'name': 'yaml-language-server', \ 'cmd': {server_info->lsp_settings#get('yaml-language-server', 'cmd', [lsp_settings#exec_path('yaml-language-server'), '--stdio'])}, - \ 'root_uri':{server_info->lsp_settings#get('yaml-language-server', 'root_uri', lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/'])))}, + \ 'root_uri':{server_info->lsp_settings#get('yaml-language-server', 'root_uri', lsp_settings#root_uri(['.git/']))}, + \ 'initialization_options': lsp_settings#get('yaml-language-server', 'initialization_options', v:null), \ 'whitelist': lsp_settings#get('yaml-language-server', 'whitelist', ['yaml']), \ 'blacklist': lsp_settings#get('yaml-language-server', 'blacklist', []), \ 'config': lsp_settings#get('yaml-language-server', 'config', {}), -- cgit v1.2.3-54-g00ecf From 6fa5eb358c24dc7e0838e790ec0b45141d56a909 Mon Sep 17 00:00:00 2001 From: Mitsuo Heijo Date: Thu, 26 Dec 2019 01:32:29 +0900 Subject: feature: support swift and cobol --- README.md | 2 ++ installer/install-cobol-language-support.sh | 22 ++++++++++++++++++++++ settings.json | 16 ++++++++++++++++ settings/cobol-language-support.vim | 13 +++++++++++++ settings/sourcekit-lsp.vim | 13 +++++++++++++ 5 files changed, 66 insertions(+) create mode 100755 installer/install-cobol-language-support.sh create mode 100644 settings/cobol-language-support.vim create mode 100644 settings/sourcekit-lsp.vim (limited to 'settings') diff --git a/README.md b/README.md index 836859a..4c0bc35 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,8 @@ Currently, no way to uninstall/update server. Run this command again, newer vers | Scala | Metals | Yes | | Elm | elm-language-server | Yes | | JSON | json-languageserver | Yes | +| Swift | sourcekit-lsp | No | +| COBOL | cobol-language-support | Yes | ## License diff --git a/installer/install-cobol-language-support.sh b/installer/install-cobol-language-support.sh new file mode 100755 index 0000000..f87e1c3 --- /dev/null +++ b/installer/install-cobol-language-support.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +set -e + +cd $(dirname $0) + +server_dir="../servers/cobol-language-support" +[ -d "$server_dir" ] && rm -rf "$server_dir" +mkdir "$server_dir" && cd "$server_dir" + +version="0.9.1" +url="https://github.com/eclipse/che-che4z-lsp-for-cobol/releases/download/$version/cobol-language-support-$version.vsix" +curl -LO "$url" +unzip "cobol-language-support-$version.vsix" + +cat <./cobol-language-support +#!/bin/sh +DIR=\$(cd \$(dirname \$0); pwd) +java "-Dline.speparator=\r\n" -jar "\$DIR/extension/server/lsp-service-cobol-$version.jar" pipeEnabled +EOF + +chmod +x ./cobol-language-support diff --git a/settings.json b/settings.json index 992d02d..c7f0432 100644 --- a/settings.json +++ b/settings.json @@ -204,5 +204,21 @@ "npm" ] } + ], + "swift": [ + { + "command": "sourcekit-lsp", + "requires": [ + "sourcekit-lsp" + ] + } + ], + "cobol": [ + { + "command": "cobol-language-support", + "requires": [ + "java" + ] + } ] } diff --git a/settings/cobol-language-support.vim b/settings/cobol-language-support.vim new file mode 100644 index 0000000..b0f5dc9 --- /dev/null +++ b/settings/cobol-language-support.vim @@ -0,0 +1,13 @@ +augroup vimlsp_settings_cobol_language_support + au! + LspRegisterServer { + \ 'name': 'cobol-language-support', + \ 'cmd': {server_info->lsp_settings#get('cobol-language-support', 'cmd', [lsp_settings#exec_path('cobol-language-support')])}, + \ 'root_uri':{server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/']))}, + \ 'initialization_options': lsp_settings#get('cobol-language-support', 'initialization_options', {}), + \ 'whitelist': lsp_settings#get('cobol-language-support', 'whitelist', ['cobol']), + \ 'blacklist': lsp_settings#get('cobol-language-support', 'blacklist', []), + \ 'config': lsp_settings#get('cobol-language-support', 'config', {}), + \ 'workspace_config': lsp_settings#get('cobol-language-support', 'workspace_config', {}), + \ } +augroup END diff --git a/settings/sourcekit-lsp.vim b/settings/sourcekit-lsp.vim new file mode 100644 index 0000000..0d0c155 --- /dev/null +++ b/settings/sourcekit-lsp.vim @@ -0,0 +1,13 @@ +augroup vimlsp_settings_sourcekit_lsp + au! + LspRegisterServer { + \ 'name': 'sourcekit-lsp', + \ 'cmd': {server_info->lsp_settings#get('sourcekit-lsp', 'cmd', [lsp_settings#exec_path('sourcekit-lsp')])}, + \ 'initialization_options': lsp_settings#get('sourcekit-lsp', 'initialization_options', {}), + \ 'root_uri':{server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/', 'Package.swift', '.xcodeproj', '.xcworkspace', 'Cartfile', 'Podfile']))}, + \ 'whitelist': lsp_settings#get('sourcekit-lsp', 'whitelist', ['swift']), + \ 'blacklist': lsp_settings#get('sourcekit-lsp', 'blacklist', []), + \ 'config': lsp_settings#get('sourcekit-lsp', 'config', {}), + \ 'workspace_config': lsp_settings#get('sourcekit-lsp', 'workspace_config', {}), + \ } +augroup END -- cgit v1.2.3-54-g00ecf From 21865d3984ef1ee3014b1569a077c81d39cf27da Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Thu, 26 Dec 2019 01:42:16 +0900 Subject: Fix root_uri --- settings/cobol-language-support.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'settings') diff --git a/settings/cobol-language-support.vim b/settings/cobol-language-support.vim index b0f5dc9..57df026 100644 --- a/settings/cobol-language-support.vim +++ b/settings/cobol-language-support.vim @@ -3,7 +3,7 @@ augroup vimlsp_settings_cobol_language_support LspRegisterServer { \ 'name': 'cobol-language-support', \ 'cmd': {server_info->lsp_settings#get('cobol-language-support', 'cmd', [lsp_settings#exec_path('cobol-language-support')])}, - \ 'root_uri':{server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/']))}, + \ 'root_uri':{server_info->lsp_settings#get('cobol-language-server', 'root_uri', lsp_settings#root_uri(['.git/']))}, \ 'initialization_options': lsp_settings#get('cobol-language-support', 'initialization_options', {}), \ 'whitelist': lsp_settings#get('cobol-language-support', 'whitelist', ['cobol']), \ 'blacklist': lsp_settings#get('cobol-language-support', 'blacklist', []), -- cgit v1.2.3-54-g00ecf From 69986135088b044b6cedabd3bdec55375c280e9d Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Thu, 26 Dec 2019 01:43:49 +0900 Subject: ditto --- settings/sourcekit-lsp.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'settings') diff --git a/settings/sourcekit-lsp.vim b/settings/sourcekit-lsp.vim index 0d0c155..54e1d03 100644 --- a/settings/sourcekit-lsp.vim +++ b/settings/sourcekit-lsp.vim @@ -3,8 +3,8 @@ augroup vimlsp_settings_sourcekit_lsp LspRegisterServer { \ 'name': 'sourcekit-lsp', \ 'cmd': {server_info->lsp_settings#get('sourcekit-lsp', 'cmd', [lsp_settings#exec_path('sourcekit-lsp')])}, + \ 'root_uri':{server_info->lsp_settings#get('sourcekit-lsp', 'root_uri', lsp_settings#root_uri(['.git/', 'Package.swift', '.xcodeproj', '.xcworkspace', 'Cartfile', 'Podfile']))}, \ 'initialization_options': lsp_settings#get('sourcekit-lsp', 'initialization_options', {}), - \ 'root_uri':{server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), ['.git/', 'Package.swift', '.xcodeproj', '.xcworkspace', 'Cartfile', 'Podfile']))}, \ 'whitelist': lsp_settings#get('sourcekit-lsp', 'whitelist', ['swift']), \ 'blacklist': lsp_settings#get('sourcekit-lsp', 'blacklist', []), \ 'config': lsp_settings#get('sourcekit-lsp', 'config', {}), -- cgit v1.2.3-54-g00ecf From 6d61c22ec9d45e7fa5d7ef40fe2268c81a800be1 Mon Sep 17 00:00:00 2001 From: Prabir Date: Wed, 25 Dec 2019 13:49:50 -0800 Subject: use typescriptreact as filetype for .tsx files --- settings/typescript-language-server.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'settings') diff --git a/settings/typescript-language-server.vim b/settings/typescript-language-server.vim index 1147976..9a5506d 100644 --- a/settings/typescript-language-server.vim +++ b/settings/typescript-language-server.vim @@ -5,7 +5,7 @@ augroup vimlsp_settings_typescript_language_server \ 'cmd': {server_info->lsp_settings#get('typescript-language-server', 'cmd', [lsp_settings#exec_path('typescript-language-server'), '--stdio'])}, \ 'root_uri':{server_info->lsp_settings#get('typescript-language-server', 'root_uri', lsp_settings#root_uri(['.git/', 'package.json']))}, \ 'initialization_options': lsp_settings#get('typescript-language-server', 'initialization_options', {"diagnostics": "true"}), - \ 'whitelist': lsp_settings#get('typescript-language-server', 'whitelist', ['typescript', 'typescript.tsx']), + \ 'whitelist': lsp_settings#get('typescript-language-server', 'whitelist', ['typescript', 'typescriptreact']), \ 'blacklist': lsp_settings#get('typescript-language-server', 'blacklist', []), \ 'config': lsp_settings#get('typescript-language-server', 'config', {}), \ 'workspace_config': lsp_settings#get('typescript-language-server', 'workspace_config', {}), -- cgit v1.2.3-54-g00ecf From 93d2c9e02a8e633c89314315c45a75d0abf6a3e6 Mon Sep 17 00:00:00 2001 From: Prabir Date: Wed, 25 Dec 2019 13:51:58 -0800 Subject: add support for javascriptreact --- settings/javascript-typescript-langserver.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'settings') diff --git a/settings/javascript-typescript-langserver.vim b/settings/javascript-typescript-langserver.vim index d277b89..72afeb0 100644 --- a/settings/javascript-typescript-langserver.vim +++ b/settings/javascript-typescript-langserver.vim @@ -5,7 +5,7 @@ augroup vimlsp_settings_javascript_typescript_langserver \ 'cmd': {server_info->lsp_settings#get('javascript-typescript-langserver', 'cmd', [lsp_settings#exec_path('javascript-typescript-langserver')])}, \ 'root_uri':{server_info->lsp_settings#get('javascript-typescript-langserver', 'root_uri', lsp_settings#root_uri(['.git/']))}, \ 'initialization_options': lsp_settings#get('javascript-typescript-langserver', 'initialization_options', {"diagnostics": "true"}), - \ 'whitelist': lsp_settings#get('javascript-typescript-langserver', 'whitelist', ['javascript']), + \ 'whitelist': lsp_settings#get('javascript-typescript-langserver', 'whitelist', ['javascript', 'javascriptreact']), \ 'blacklist': lsp_settings#get('javascript-typescript-langserver', 'blacklist', []), \ 'config': lsp_settings#get('javascript-typescript-langserver', 'config', {}), \ 'workspace_config': lsp_settings#get('javascript-typescript-langserver', 'workspace_config', {}), -- cgit v1.2.3-54-g00ecf From 1ffdfd7077fa6e9021ceb5de9aa278f49dbb9567 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Thu, 26 Dec 2019 11:43:59 +0900 Subject: Fixed css-languageserver --- settings/css-languageserver.vim | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'settings') diff --git a/settings/css-languageserver.vim b/settings/css-languageserver.vim index 12707df..9fdfb5f 100644 --- a/settings/css-languageserver.vim +++ b/settings/css-languageserver.vim @@ -5,9 +5,12 @@ augroup vimlsp_settings_css_languageserver \ 'cmd': {server_info->lsp_settings#get('css-languageserver', 'cmd', [lsp_settings#exec_path('css-languageserver'), '--stdio'])}, \ 'root_uri':{server_info->lsp_settings#get('css-languageserver', 'root_uri', lsp_settings#root_uri(['.git/']))}, \ 'initialization_options': lsp_settings#get('css-languageserver', 'initialization_options', v:null), - \ 'whitelist': lsp_settings#get('css-languageserver', 'whitelist', ['css']), + \ 'whitelist': lsp_settings#get('css-languageserver', 'whitelist', ['css', 'less', 'sass']), \ 'blacklist': lsp_settings#get('css-languageserver', 'blacklist', []), \ 'config': lsp_settings#get('css-languageserver', 'config', {}), - \ 'workspace_config': lsp_settings#get('css-languageserver', 'workspace_config', {'css': {'lint': {'validProperties': []}}}), - \ } + \ 'workspace_config': lsp_settings#get('css-languageserver', 'workspace_config', { + \ 'css': {'lint': {'validProperties': []}}, + \ 'less': {'lint': {'validProperties': []}}, + \ 'sass': {'lint': {'validProperties': []}}, + \ })} augroup END -- cgit v1.2.3-54-g00ecf From 66a334652c6e8f7f6d83f9a848d6b34a56068b02 Mon Sep 17 00:00:00 2001 From: Mitsuo Heijo Date: Fri, 27 Dec 2019 00:38:45 +0900 Subject: feature: support reason --- installer/install-reason-language-server.sh | 29 +++++++++++++++++++++++++++++ settings.json | 6 ++++++ settings/reason-language-server.vim | 13 +++++++++++++ 3 files changed, 48 insertions(+) create mode 100755 installer/install-reason-language-server.sh create mode 100644 settings/reason-language-server.vim (limited to 'settings') diff --git a/installer/install-reason-language-server.sh b/installer/install-reason-language-server.sh new file mode 100755 index 0000000..78df09c --- /dev/null +++ b/installer/install-reason-language-server.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +set -e + +cd $(dirname $0) + +server_dir="../servers/reason-language-server" +[ -d $server_dir ] && rm -rf $server_dir +mkdir $server_dir && cd $server_dir + +os=$(uname -s | tr "[:upper:]" "[:lower:]") + +case $os in +linux) ;; +darwin) + os="macos" + ;; +*) + printf "%s doesn't supported by bash installer" "$os" + exit 1 + ;; +esac + +version="1.7.4" +url="https://github.com/jaredly/reason-language-server/releases/download/$version/rls-$os.zip" +curl -LO "$url" +unzip "rls-$os.zip" + +ln -s "./rls-$os/reason-language-server" . diff --git a/settings.json b/settings.json index 97b34ea..0265c0d 100644 --- a/settings.json +++ b/settings.json @@ -151,6 +151,12 @@ ] } ], + "reason": [ + { + "command": "reason-language-server", + "requires": [] + } + ], "ruby": [ { "command": "solargraph", diff --git a/settings/reason-language-server.vim b/settings/reason-language-server.vim new file mode 100644 index 0000000..9c4a5e1 --- /dev/null +++ b/settings/reason-language-server.vim @@ -0,0 +1,13 @@ +augroup vimlsp_settings_reason_language_server + au! + LspRegisterServer { + \ 'name': 'reason-language-server', + \ 'cmd': {server_info->lsp_settings#get('reason-language-server', 'cmd', [lsp_settings#exec_path('reason-language-server')])}, + \ 'root_uri':{server_info->lsp_settings#get('reason-language-server', 'root_uri', lsp_settings#root_uri(['.git/', 'pacakge.json']))}, + \ 'initialization_options': lsp_settings#get('reason-language-server', 'initialization_options', {}), + \ 'whitelist': lsp_settings#get('reason-language-server', 'whitelist', ['reason']), + \ 'blacklist': lsp_settings#get('reason-language-server', 'blacklist', []), + \ 'config': lsp_settings#get('reason-language-server', 'config', {}), + \ 'workspace_config': lsp_settings#get('reason-language-server', 'workspace_config', {}), + \ } +augroup END -- cgit v1.2.3-54-g00ecf From 23b4bb48be8ffa632992e901b3f8d3235f0c7f07 Mon Sep 17 00:00:00 2001 From: wordi Date: Fri, 27 Dec 2019 02:29:15 +0900 Subject: Use installed tsserver from typescript-language-server --- installer/install-typescript-language-server.cmd | 1 + installer/install-typescript-language-server.sh | 1 + settings/typescript-language-server.vim | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) (limited to 'settings') diff --git a/installer/install-typescript-language-server.cmd b/installer/install-typescript-language-server.cmd index 8538968..1f8dc85 100644 --- a/installer/install-typescript-language-server.cmd +++ b/installer/install-typescript-language-server.cmd @@ -2,4 +2,5 @@ cd /d %~dp0 +call npm_install tsserver typescript call npm_install typescript-language-server typescript-language-server diff --git a/installer/install-typescript-language-server.sh b/installer/install-typescript-language-server.sh index 7669018..a34ea58 100755 --- a/installer/install-typescript-language-server.sh +++ b/installer/install-typescript-language-server.sh @@ -5,4 +5,5 @@ set -e cd $(dirname $0) . ./npm.sh +npm_install tsserver typescript npm_install typescript-language-server typescript-language-server diff --git a/settings/typescript-language-server.vim b/settings/typescript-language-server.vim index 9a5506d..8b62b67 100644 --- a/settings/typescript-language-server.vim +++ b/settings/typescript-language-server.vim @@ -2,7 +2,7 @@ augroup vimlsp_settings_typescript_language_server au! LspRegisterServer { \ 'name': 'typescript-language-server', - \ 'cmd': {server_info->lsp_settings#get('typescript-language-server', 'cmd', [lsp_settings#exec_path('typescript-language-server'), '--stdio'])}, + \ 'cmd': {server_info->lsp_settings#get('typescript-language-server', 'cmd', [lsp_settings#exec_path('typescript-language-server'), '--stdio', '--tsserver-path', lsp_settings#exec_path('tsserver')])}, \ 'root_uri':{server_info->lsp_settings#get('typescript-language-server', 'root_uri', lsp_settings#root_uri(['.git/', 'package.json']))}, \ 'initialization_options': lsp_settings#get('typescript-language-server', 'initialization_options', {"diagnostics": "true"}), \ 'whitelist': lsp_settings#get('typescript-language-server', 'whitelist', ['typescript', 'typescriptreact']), -- cgit v1.2.3-54-g00ecf