FORTLS(1)

πŸ’… FORTLS β€” bestie edition

okay so this is fortls, the Fortran Language Server for the Language Server Protocol, and it lives in section 1 of the manual (User Commands, iykyk). it's giving "your editor but it actually understands Fortran" and honestly? we're obsessed. πŸ¦‹


✨ NAME ✨

fortls β€” Fortran Language Server for the Language Server Protocol πŸ’–


πŸŽ€ DESCRIPTION πŸŽ€

the vibe:

usage: fortls [options] [debug options]

fortls β€” Fortran Language Server ✨ that's it, that's the whole thing. it's a language server. it speaks Fortran. it's iconic. πŸ‘‘


🌸 options: 🌸

  • -h, --help β€” shows this help message and dips out. short and sweet, we love a queen who knows when to leave 🫢
  • -v, --version β€” prints the server version number and exits. no notes πŸ’…
  • -c, --config CONFIG β€” the configuration options file. default file name is .fortlsrc, and the other default supported names are .fortls.json and .fortls (and if you wanna get fancy with other names/paths, that's what -c / --config are for) πŸŽ€
  • -n, --nthreads INTEGER β€” how many threads to use while the workspace is initializing. default is 4. yes bestie, parallelize her πŸ’…
  • --notify_init β€” sends a notification message when workspace initialization is complete. like a little "i'm done!! ✨" text
  • --incremental_sync β€” uses incremental document synchronization. it's beta, so act accordingly 😭
  • --recursion_limit INTEGER β€” sets the maximum recursion depth for the parser. default is 1000. we're going deep, no cap πŸŒ€
  • --sort_keywords β€” displays variable keywords information, function/subroutine definitions, etc. in a consistent (sorted) manner. default: no sorting, display code as is. pick your fighter ✨
  • --disable_autoupdate β€” fortls automatically checks PyPi for newer versions and installs them. use this option to disable the autoupdate feature. (yes, it really does that unprompted. main character energy fr) πŸ™ˆ
  • --preserve_keyword_order β€” DEPRECATED, this is now the default. to sort, use sort_keywords. she's retired but we still respect her πŸ’€
  • --debug_log β€” generates a debug log in the project root folder πŸ“
  • --debug_help β€” displays options for debugging fortls πŸ›

πŸ¦‹ Sources file parsing options: πŸ¦‹

  • --source_dirs [DIRS ...] β€” folders containing source files. default: set(). empty set, empty heart πŸ₯²
  • --incl_suffixes [SUFFIXES ...] β€” consider additional file extensions on top of the defaults. default: .F, .F77, .F90, .F95, .F03, .F08, .FOR, .FPP (lower & upper casing, she's bilingual πŸ’…)
  • --excl_suffixes [SUFFIXES ...] β€” source file extensions to be excluded. default: set() βœ‹
  • --excl_paths [DIRS ...] β€” folders to exclude from parsing. not today, thank you πŸ’–

🌈 Autocomplete options: 🌈

  • --autocomplete_no_prefix β€” do not filter autocomplete results by variable prefix
  • --autocomplete_no_snippets β€” do not use snippets with place holders in autocomplete results
  • --autocomplete_name_only β€” complete only the name of procedures and not the parameters. names only, we're being mysterious ✨
  • --lowercase_intrinsics β€” use lowercase for intrinsics and keywords in autocomplete requests
  • --use_signature_help β€” use signature help instead of subroutine/function snippets. this effectively sets --autocomplete_no_snippets 🫢

πŸ’œ Hover options: πŸ’œ

  • --variable_hover β€” DEPRECATED: this option is always on. shows hover information for variables. she's permanently on, bestie, no toggle 😭
  • --hover_signature β€” shows signature information in hover for arguments ✨
  • --hover_language HOVER_LANGUAGE β€” the language used for responses to hover requests, a VSCode language id. default: fortran90 πŸŽ€

πŸ“ Diagnostic options (error swigles): πŸ“

(yes the original says "swigles", we're keeping it, it's iconic)

  • --max_line_length INTEGER β€” maximum line length. default: -1 πŸ“
  • --max_comment_line_length INTEGER β€” maximum comment line length. default: -1 πŸ’¬
  • --disable_diagnostics β€” disables diagnostics. ignorance is bliss, lowkey 🚫

🧚 Preprocessor options: 🧚

  • --pp_suffixes [SUFFIXES ...] β€” file extensions to be parsed ONLY for preprocessor commands. default: all uppercase source file suffixes πŸŽ€
  • --include_dirs [DIRS ...] β€” folders containing preprocessor files with extensions PP_SUFFIXES
  • --pp_defs JSON β€” a dictionary with additional preprocessor definitions. preprocessor definitions are normally included via INCLUDE_DIRS ✨

πŸ‘‘ Symbols options: πŸ‘‘

  • --symbol_skip_mem β€” do not include type members in document symbol results. keep the members to yourself, mysterious queen πŸ’…

πŸ’€ CodeActions options [limited]: πŸ’€

  • --enable_code_actions β€” enable experimental code actions. default: false. experimental, so proceed with caution bestie πŸ™ˆ

all options starting with -- can also be set in a configuration file, by default named .fortlsrc, .fortls.json or .fortls (other names/paths can be specified via -c or --config). for more details see our documentation: https://fortls.fortran-lang.org/options.html#available-options

🌸 okay that's the whole page, you ate that. this is fortls 3.2.2+dfsg, from March 2025, and yeah, the manual page is literally called FORTLS(1). go forth and hover, bestie πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from