diff options
-rw-r--r-- | core/ext/key_commands.lua | 4 | ||||
-rw-r--r-- | core/ext/menu.lua | 2 | ||||
-rw-r--r-- | init.lua | 3 | ||||
-rw-r--r-- | modules/textadept/init.lua | 3 | ||||
-rw-r--r-- | modules/textadept/mime_types.conf (renamed from core/ext/mime_types.conf) | 0 | ||||
-rw-r--r-- | modules/textadept/mime_types.lua (renamed from core/ext/mime_types.lua) | 58 |
6 files changed, 61 insertions, 9 deletions
diff --git a/core/ext/key_commands.lua b/core/ext/key_commands.lua index aed8d4a0..bed228dd 100644 --- a/core/ext/key_commands.lua +++ b/core/ext/key_commands.lua @@ -261,7 +261,7 @@ if not MAC then ['\t'] = { toggle_setting, 'use_tabs' }, [' '] = { toggle_setting, 'view_ws' }, } - keys.cl = { t.mime_types.select_lexer } + keys.cl = { _m.textadept.mime_types.select_lexer } keys['f5'] = { 'colourise', b, 0, -1 } -- Views @@ -423,7 +423,7 @@ else ['\t'] = { toggle_setting, 'use_tabs' }, [' '] = { toggle_setting, 'view_ws' }, } - keys.cl = { t.mime_types.select_lexer } + keys.cl = { _m.textadept.mime_types.select_lexer } keys['f5'] = { 'colourise', b, 0, -1 } -- Views diff --git a/core/ext/menu.lua b/core/ext/menu.lua index 20134d5b..7fede4da 100644 --- a/core/ext/menu.lua +++ b/core/ext/menu.lua @@ -277,7 +277,7 @@ local menubar = { }, } local lexer_menu = { title = l.MENU_LEX_TITLE } -for _, lexer in ipairs(textadept.mime_types.lexers) do +for _, lexer in ipairs(_m.textadept.mime_types.lexers) do lexer_menu[#lexer_menu + 1] = { lexer, ID.LEXER_START + #lexer_menu } end table.insert(menubar, #menubar, gtkmenu(lexer_menu)) -- before 'Help' @@ -16,9 +16,6 @@ if not textadept.user_dofile('init.lua') then -- Core extension modules to load on startup. require 'ext/find' -- provides functionality for find/replace require 'ext/command_entry' -- provides tab-completion for the command entry -require 'ext/mime_types' -- provides support for language detection based on - -- the file; loads its language-specific module if - -- it exists -- Generic modules to load on startup. require 'textadept' diff --git a/modules/textadept/init.lua b/modules/textadept/init.lua index 027a9518..bd4245c9 100644 --- a/modules/textadept/init.lua +++ b/modules/textadept/init.lua @@ -7,6 +7,7 @@ module('_m.textadept', package.seeall) require 'textadept.bookmarks' require 'textadept.editing' -require 'textadept.snippets' +require 'textadept.mime_types' require 'textadept.run' require 'textadept.session' +require 'textadept.snippets' diff --git a/core/ext/mime_types.conf b/modules/textadept/mime_types.conf index 10f4a8bb..10f4a8bb 100644 --- a/core/ext/mime_types.conf +++ b/modules/textadept/mime_types.conf diff --git a/core/ext/mime_types.lua b/modules/textadept/mime_types.lua index 8e014e18..ba7a33c3 100644 --- a/core/ext/mime_types.lua +++ b/modules/textadept/mime_types.lua @@ -5,7 +5,61 @@ local locale = _G.locale --- -- Handles file-specific settings. -module('textadept.mime_types', package.seeall) +module('_m.textadept.mime_types', package.seeall) + +-- Markdown: +-- ## Overview +-- +-- Files can be recognized and associated with programming language lexers in +-- three ways: +-- +-- * By file extension. +-- * By keywords in the file's shebang (`#!/path/to/exe`) line. +-- * By a pattern that matches the file's first line. +-- +-- If a lexer is not associated with a file you open, first make sure the lexer +-- exists in `lexers/`. If it does not, you will need to write one. Consult the +-- [lexer][lexer] module for a tutorial. +-- +-- [lexer]: ../modules/lexer.html +-- +-- ## Configuration Files +-- +-- Built-in mime-types are located in `core/ext/mime_types.conf`. You can +-- override or add to them in your `~/.textadept/mime_types.conf`. +-- +-- #### Detection by File Extension +-- +-- file_ext lexer +-- +-- Note: `file_ext` should not start with a `.` (period). +-- +-- #### Detection by Shebang Keywords +-- +-- #shebang_word lexer +-- +-- Examples of `shebang_word`'s are `lua`, `ruby`, `python`. +-- +-- #### Detection by Pattern +-- +-- /pattern lexer +-- +-- Only the last space, the one separating the pattern from the lexer, is +-- significant. No spaces in the pattern need to be escaped. +-- +-- ## Extras +-- +-- This module adds an extra function to `buffer`: +-- +-- * **buffer:set\_lexer** (language)<br /> +-- Replacement for [`buffer:set_lexer_language()`][buffer_set_lexer_language].<br /> +-- Sets a buffer._lexer field so it can be restored without querying the +-- mime-types tables. Also if the user manually sets the lexer, it should be +-- restored.<br /> +-- Loads the language-specific module if it exists. +-- - lang: The string language to set. +-- +-- [buffer_set_lexer_language]: buffer.html#buffer:set_lexer_language -- Markdown: -- ## Overview @@ -81,7 +135,7 @@ patterns = {} -- Load mime-types from mime_types.conf local mime_types -local f = io.open(_HOME..'/core/ext/mime_types.conf', 'rb') +local f = io.open(_HOME..'/modules/textadept/mime_types.conf', 'rb') if f then mime_types = f:read('*all') f:close() |