aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/ext/key_commands.lua4
-rw-r--r--core/ext/menu.lua2
-rw-r--r--init.lua3
-rw-r--r--modules/textadept/init.lua3
-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'
diff --git a/init.lua b/init.lua
index 672fd668..3cee810f 100644
--- a/init.lua
+++ b/init.lua
@@ -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()