From d196ce1c86c27e0b07b2ee537da07e362f44e784 Mon Sep 17 00:00:00 2001 From: mitchell <70453897+667e-11@users.noreply.github.com> Date: Mon, 17 Jan 2011 15:50:06 -0500 Subject: Added Adeptsense. --- modules/cpp/adeptsense.lua | 28 ++++++++++++++++++++++++++++ modules/cpp/commands.lua | 8 ++++++++ modules/cpp/init.lua | 1 + 3 files changed, 37 insertions(+) create mode 100644 modules/cpp/adeptsense.lua (limited to 'modules/cpp') 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 mitchellcaladbolg.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' -- cgit v1.2.3