helix-editor / helix

A post-modern modal text editor.
https://helix-editor.com
Mozilla Public License 2.0
33.2k stars 2.47k forks source link

A list of file formats supported but not highlighted which are highlighted in VSCode #8375

Closed yoav-lavi closed 1 year ago

yoav-lavi commented 1 year ago

What is this?

This table represents file formats that are written in a language that is supported by Helix but not currently recognized. These formats are extracted from each extension (for languages Helix supports) in microsoft/vscode/tree/main/extensions, meaning VSCode will recognize them by default (descriptions were added by hand and aren't from the VSCode codebase).

(Up to date for commit 7702e130ba93f885ac56be5818b93c544a00538f)

Is this comprehensive?

Should be, I made this manually so some items may theoretically be missing or skipped. I did remove anything that was ambiguous (used by other filetypes, except in one case where it's relatively unlikely to be an issue) or that seems to have changed to use a different format

Why?

So we can add these to languages.toml and have an even better out of the box experience! 😄 (I intend to open a PR for this soon, but wanted to discuss here first)

Note: In languages where there's a gap in the entries, the top part is extensions, and the bottom is filenames

Language Missing Extensions
cpp - .h++: Header
- .ii: A temporary file generated using the GCC compiler, contains the output of a C++ source file after pre-processing has been performed.
- .inl: Used to define inline function
- .hpp.in: Input for CMake
- .h.in: Input for GNU autoconf
c-sharp - .csx: Visual Studio script
- .cake: C# Make file
diff - .rej: Rejected files (usually hunks patches but not only)
fsharp - .fsi: A signature file used by Visual F#
- .fsscript: An F# script
html - .htm: Normal HTML file
- .shtml: A webpage that is written in HTML and includes server instructions
- .xhtml: A format, which is a collection of different document types and modules that mimic, categorize, and extend HTML 4
- .xht: A file with . xht extension is a web file associated with the XHTML (Extended Hypertext Markup Language) file type, which itself is an XML based markup file. Both these files are similar to HTML but have a more stringent XML-like syntax
- .jsp: Java Server Pages
- .asp: ASP.NET web page
- .aspx: A webpage generated using Microsoft ASP.NET
- .jshtm: ?
- .volt: Volt template file
- .rhtml: Ruby HTML page
ini - .conf: Stores settings used to configure system processes and applications
- .properties: Properties file used by Java programs (IIRC this isn't well defined)
- .cfg: A generic preference file that stores settings and configuration information
- .directory: Contains the folder viewing settings for a directory in KDE
javascript - .es6: (should be) an ES6 file
- .pac: A configuration file used by web browsers to select an appropriate proxy server

- jakefile: A configuration file for the Jake script runner
json - .bowerrc: Configuration file for Bower
- .jscsrc: JSCS config file (can contain comments)
- .js.map: JavaScript map file
- .css.map: CSS map file
- .ts.map: TypeScript map file
- .jslintrc: JSLint configuration file
- .jsonld: A lightweight Linked Data format (based on JSON)
- .vuerc: Vue configuration file

- composer.lock: A lock file used by Composer
- .watchmanconfig: A configuration file for Watchman
latex - .bbx: ?
- .cbx: ?
make - .mak: Normal makefile

- GNUmakefile: GNU specific makefile
- OCamlMakefile: A Simple Generic Makefile for OCaml-Projects
markdown - .mkd: Markdown Documentation File
- .mdwn: Markdown file
- .mdown: Markdown file
- .markdn: Markdown file
- .mdtxt: Markdown file
- .mdtext: Markdown file
- .workbook: ?
perl - .psgi: ?
- .raku: Raku (Pearl 6) file
- .rakumod: Raku module
- .rakutest: Raku test file
- .rakudoc: Raku documentation
- .nqp: A tool for writing Raku compilers
- .p6: (most likely) A Raku (Pearl 6) file
- .pl6: (most likely) A Raku (Pearl 6) file
- .pm6: Raku module
php - .php4: A PHP 4 file
- .php5: A PHP 5 file
- .phtml: Presentation related PHP file
- .ctp: CakePHP template page
python - .rpy: Ren'Py visual novel engine file
- .cpy: ?
- .ipy: IPython script
- .pyt: A Python toolbox created by ESRI ArcGIS

- SConscript: SCons script file
r - .rhistory: History of executed R code
ruby - .rjs: Ruby JavaScript file
- .rbi: Ruby interface files

- guardfile: Used by Guard
- capfile: Used by Capistrano
- cheffile: Used by Chef
- hobofile: ?
- appraisals: A ruby library
- rantfile: Used by Rant
- berksfile: Used by Chef
- berksfile.lock: Used by Chef
- thorfile: Used by the Thor toolkit
- puppetfile: Used by Puppet
- fastfile: Used by fastlane
- appfile: Used by fastlane
- deliverfile: Used by fastlane
- matchfile: Used by fastlane
- scanfile: ?
- snapfile: Used by fastlane
- gymfile: Used by fastlane
bash - .bash_aliases: Bash alias file
- .bash_profile: A hidden script file with custom configurations for a user terminal session
- .bash_login: Executed on login
- .bash_logout: Executed on logout
- .xprofile: X session profile
- .xsession: X11
- .xsessionrc: X11
- .zsh-theme: ?
- .ksh: Korn Shell file
- .cshrc: tcsh RC file
- .tcshrc: tcsh RC file
- .yashrc: RC for Yash
- .yash_profile: Profile for Yash

- .hushlogin: Removes the bash login
- bashrc_Apple_Terminal: Used on macOS
- zshrc_Apple_Terminal: Used on macOS
sql - .dsql: ?
xml - .ascx: ASP.NET User Control File
- .axml: Xamarin Android UI file
- .axaml: Used by Avalonia UI
- .bpmn: A diagram created by Camunda BPMN Editor
- .cpt: Corel PHOTO-PAINT Image
- .csl: CineStyle Color Lookup File
- .csproj.user: C# personal IDE settings
- .dita: Darwin Information Typing Architecture
- .ditamap: Collection of DITA (Darwin Information Typing Architecture) topics
- .dtml: Document Template Markup Language file
- .fxml: Java FX file
- .iml: IntelliJ IDEA settings
- .isml: ?
- .jmx: Used by Apache JMeter
- .launch: ?
- .menu: Menu file used by id Tech 3 (Quake III engine) games
- .mxml: Component used by a Adobe Flex application
- .nuspec: NuGet Specification File
- .pt: PyTorch Model
- .publishsettings: ?
- .pubxml: Visual Studio publish profile
- .pubxml.user: Visual Studio per user publish profile
- .rbxlx: Roblox XML Place File
- .rbxmx: Roblox Model
- .rng: RELAX NG File (can technically also be a Nokia ringtone file but collision is unlikely)
- .shproj: Visual Studio Code Sharing App Project
- .tld: Tag Library Descriptor File
- .tmx: Translation Memory Exchange File
- .vbproj.user: User visual basic project file
- .vcxproj: Visual C++ Project
- .vcxproj.filters: Visual C++ Project Filters File
- .wsdl: Web Services Description Language File
- .wxi: WiX Include File
- .wxs: WiX Source File
- .xbl: Extensible Binding Language File
- .xlf: XLIFF Document
- .xliff: XLIFF Localization File
- .xpdl: XPDL Module
- .xul: XML User Interface Language File
- .xoml: Windows Workflow File
archseer commented 1 year ago

The best list to sync against is probably https://github.com/github/linguist/blob/master/lib/linguist/languages.yml

yoav-lavi commented 1 year ago

@archseer I've opened a PR for these, we could of course also sync with the list you mentioned for additional formats, but I think this is still a net gain to merge

yoav-lavi commented 1 year ago

@archseer opened https://github.com/helix-editor/helix/issues/8389 for this