• Sign In



  • Categories

    Extension Details



    Readme

    Fortran Language Extension for Nova

    Fortran provides comprehensive language support for free-form Fortran (F90 and later) in the Nova editor, powered by tree-sitter-fortran.

    Features

    • Syntax Highlighting - Full syntax highlighting for modern Fortran including keywords, types, operators, functions, subroutines, and more
    • Symbol Navigation - Navigate to programs, modules, subroutines, and functions via the symbol list (⌘P)
    • Code Folding - Fold major code blocks including programs, modules, functions, subroutines, loops, and conditionals
    • Comment Support - Proper handling of Fortran comment syntax with !

    Supported File Types

    This extension automatically activates for the following file types:

    • .f, .f90, .f95, .f03, .f08 - Fortran source files
    • .dek - MESA deck files
    • .inc - Include files
    • inlist* - MESA inlist files (namelist files with no extension)

    Language Support

    This extension supports free-form Fortran (Fortran 90 and later). Key supported features include:

    • Program, module, and submodule structures
    • Subroutine and function definitions
    • Derived type definitions
    • Interface blocks
    • Control structures (if/else, select case, do loops, where)
    • Intrinsic types and operators
    • Array syntax and operations
    • Procedure calls

    Note: Fixed-form Fortran (FORTRAN 77 and earlier) is not currently supported.

    Limitations

    • This is a syntax-only extension and does not include Language Server Protocol (LSP) support
    • For advanced features like auto-completion, refactoring, and diagnostics, consider using fortls with an LSP client

    Installation

    From the Nova Extension Library

    1. Open Nova
    2. Go to Extensions → Extension Library
    3. Search for "Fortran"
    4. Click Install

    Manual Installation

    1. Download the latest release from GitHub
    2. Double-click the .novaextension file to install

    Credits

    This extension was built with Claude Code, Anthropic's AI-powered coding assistant, which was instrumental in:

    • Compiling the tree-sitter parser for Nova's architecture
    • Creating comprehensive syntax highlighting queries
    • Implementing symbol navigation and code folding
    • Setting up the complete extension structure

    The syntax parsing is powered by tree-sitter-fortran by Matthew Stadelman.

    Contributing

    Bug reports and feature requests are welcome on the GitHub issue tracker.

    License

    MIT License - see the repository for details.

    Release Notes

    Changelog

    [1.0.0] - 2025-10-02

    Added

    • Initial release of Fortran language extension for Nova
    • Syntax highlighting for free-form Fortran (F90+)
    • Keywords, types, operators, literals
    • Function/subroutine definitions and calls
    • Array syntax and operators
    • Symbol navigation for major code structures
    • Programs, modules, submodules
    • Subroutines and functions
    • Derived types
    • Code folding support
    • Programs, modules, functions, subroutines
    • Derived types and interfaces
    • Control structures (if, do, select case, where)
    • File type detection
    • Extensions: .f, .f90, .f95, .f03, .f08, .dek, .inc
    • Special support for inlist files (MESA namelist files)
    • Automated testing infrastructure
    • Test file with comprehensive examples
    • Automated symbol detection validation

    Known Issues

    • Comments starting with !! appear as bookmark-style symbols in the symbol navigator
    • This appears to be Nova-internal behavior that cannot be controlled via tree-sitter queries
    • Affects both actual documentation comments and commented-out code blocks using ! ! pattern
    • The actual program/module/function/subroutine symbols work correctly
    • This is a minor cosmetic issue that does not affect core functionality

    Credits