diff options
author | 2011-01-17 15:50:06 -0500 | |
---|---|---|
committer | 2011-01-17 15:50:06 -0500 | |
commit | d196ce1c86c27e0b07b2ee537da07e362f44e784 (patch) | |
tree | 4b3e7cdadc82657d7d3a2aaef2b69beabfc5299c /modules/cpp | |
parent | 5b3d39a6ac36e344ae95666b6b60f3ee1d4e1057 (diff) | |
download | textadept-d196ce1c86c27e0b07b2ee537da07e362f44e784.tar.gz textadept-d196ce1c86c27e0b07b2ee537da07e362f44e784.zip |
Added Adeptsense.
Diffstat (limited to 'modules/cpp')
-rw-r--r-- | modules/cpp/adeptsense.lua | 28 | ||||
-rw-r--r-- | modules/cpp/commands.lua | 8 | ||||
-rw-r--r-- | modules/cpp/init.lua | 1 |
3 files changed, 37 insertions, 0 deletions
diff --git a/modules/cpp/adeptsense.lua b/modules/cpp/adeptsense.lua new file mode 100644 index 00000000..b584ee00 --- /dev/null +++ b/modules/cpp/adeptsense.lua @@ -0,0 +1,28 @@ +-- Copyright 2007-2011 Mitchell mitchell<att>caladbolg.net. See LICENSE.
+
+---
+-- Adeptsense for the cpp module.
+-- User tags are loaded from _USERHOME/modules/cpp/tags.
+module('_m.cpp.adeptsense', package.seeall)
+
+sense = _m.textadept.adeptsense.new('cpp')
+sense.ctags_kinds = {
+ c = 'classes',
+ d = 'functions',
+ e = 'fields',
+ f = 'functions',
+ g = 'classes',
+ m = 'fields',
+ s = 'classes',
+ t = 'classes'
+}
+sense.syntax.type_declarations = {
+ '(%u[%w_%.]+)[%s%*]+%_', -- Foo bar, Foo *bar, Foo* bar, etc.
+}
+sense:add_trigger('.')
+sense:add_trigger('->')
+
+-- Load user tags
+if lfs.attributes(_USERHOME..'/modules/cpp/tags') then
+ sense:load_ctags(_USERHOME..'/modules/cpp/tags')
+end
diff --git a/modules/cpp/commands.lua b/modules/cpp/commands.lua index b18247ab..fef5255f 100644 --- a/modules/cpp/commands.lua +++ b/modules/cpp/commands.lua @@ -26,6 +26,7 @@ m_run.error_detail.c = { } -- C++-specific key commands. +local cppsense = _m.cpp.adeptsense.sense local keys = _G.keys if type(keys) == 'table' then keys.cpp = { @@ -38,6 +39,13 @@ if type(keys) == 'table' then buffer:add_text(';') buffer:new_line() end }, + [not OSX and 'c\n' or 'esc'] = { cppsense.complete, cppsense }, + ['\t'] = { function() + if string.char(buffer.char_at[buffer.current_pos - 1]) ~= '(' then + return false + end + return cppsense:show_apidoc() + end }, } end diff --git a/modules/cpp/init.lua b/modules/cpp/init.lua index 17ee1d89..cce101a8 100644 --- a/modules/cpp/init.lua +++ b/modules/cpp/init.lua @@ -21,6 +21,7 @@ if type(_G.keys) == 'table' then _G.keys.cpp = {} end +require 'cpp.adeptsense' require 'cpp.commands' require 'cpp.snippets' |