Files are associated with languages (or “schemes”) in three ways - by the file extension, by the contents of the start of the file, and by a configuration file used for generating tags used in the object (aka ctags) explorer. Each is described separately below.