• hallettj
    link
    fedilink
    English
    arrow-up
    2
    ·
    4 months ago

    It would make sense for the terminal to handle syntax highlighting since that would match how editors work. But the convention is that the shell handles highlighting, not the terminal. You can check which shell you are running with the command,

    $ echo $SHELL
    

    It’s done that way because the shell is a running program that is capable of telling the terminal which colors to show (by mixing color escape sequences into text). Compare that to code in an editor which is text, not a running program so the only option is for the editor to handle highlighting[1]. Editors need syntax files to configure highlighting for all the different programming languages, while terminals don’t need this because the shell tells them what colors to show.

    [1] setting aside the “semantic highlighting” LSP capability - that was invented long after syntax highlighting conventions were established