diff options
author | 2020-07-04 23:22:03 -0400 | |
---|---|---|
committer | 2020-07-04 23:22:03 -0400 | |
commit | 021866de868fd074526fc63270639ec2f3ce9aa5 (patch) | |
tree | e86d22cad0ba6d50f5db7c6768728ecf46a188e8 | |
parent | 9835ab92e265f4c83634f1bec49b4592e2deda8c (diff) | |
download | textadept-021866de868fd074526fc63270639ec2f3ce9aa5.tar.gz textadept-021866de868fd074526fc63270639ec2f3ce9aa5.zip |
Added `buffer:style_of_name()` as an analogue to `buffer:name_of_style()`.
-rw-r--r-- | core/.buffer.luadoc | 9 | ||||
-rw-r--r-- | core/init.lua | 12 | ||||
-rw-r--r-- | modules/textadept/run.lua | 6 | ||||
-rw-r--r-- | test/test.lua | 19 |
4 files changed, 39 insertions, 7 deletions
diff --git a/core/.buffer.luadoc b/core/.buffer.luadoc index 810075fd..175e1098 100644 --- a/core/.buffer.luadoc +++ b/core/.buffer.luadoc @@ -1783,6 +1783,15 @@ function new() end function text_range(buffer, start_pos, end_pos) end --- +-- Returns the style number associated with string *style_name*, or +-- `view.STYLE_DEFAULT` if *style_name* is not in use. +-- @param buffer A buffer. +-- @param string The style name to get the number of. +-- @return style number, between `1` and `256`. +-- @see name_of_style +function style_of_name(buffer, style_name) end + +--- -- Reloads the buffer's file contents, discarding any changes. -- @param buffer A buffer. -- @name reload diff --git a/core/init.lua b/core/init.lua index 1768b1e2..07c9e060 100644 --- a/core/init.lua +++ b/core/init.lua @@ -54,7 +54,17 @@ local function text_range(buffer, start_pos, end_pos) buffer:set_target_range(target_start, target_end) -- restore return text end -events.connect(events.BUFFER_NEW, function() buffer.text_range = text_range end) + +-- Documentation is in core/.buffer.luadoc. +local function style_of_name(buffer, style_name) + assert_type(style_name, 'string', 2) + local GETNAMEDSTYLE = _SCINTILLA.properties.named_styles[1] + return buffer:private_lexer_call(GETNAMEDSTYLE, style_name) +end + +events.connect(events.BUFFER_NEW, function() + buffer.text_range, buffer.style_of_name = text_range, style_of_name +end) --[[ This comment is for LuaDoc. --- diff --git a/modules/textadept/run.lua b/modules/textadept/run.lua index 2694166f..561d873a 100644 --- a/modules/textadept/run.lua +++ b/modules/textadept/run.lua @@ -413,9 +413,9 @@ function M.goto_error(line_num, next) end if detail.message then buffer.annotation_text[detail.line] = detail.message - local GETNAMEDSTYLE = _SCINTILLA.properties.named_styles[1] - local style = buffer:private_lexer_call(GETNAMEDSTYLE, 'error') - if not detail.warning then buffer.annotation_style[detail.line] = style end + if not detail.warning then + buffer.annotation_style[detail.line] = buffer:style_of_name('error') + end end end events.connect(events.KEYPRESS, function(code) diff --git a/test/test.lua b/test/test.lua index 08881604..33e8fd67 100644 --- a/test/test.lua +++ b/test/test.lua @@ -2958,14 +2958,13 @@ end function test_view_split_refresh_styles() io.open_file(_HOME .. '/init.lua') - local GETNAMEDSTYLE = _SCINTILLA.properties.named_styles[1] - local style = buffer:private_lexer_call(GETNAMEDSTYLE, 'library') + local style = buffer:style_of_name('library') assert(style > 1, 'cannot retrieve number of library style') local color = view.style_fore[style] assert(color ~= view.style_fore[view.STYLE_DEFAULT], 'library style not set') view:split() for _, view in ipairs(_VIEWS) do - local view_style = buffer:private_lexer_call(GETNAMEDSTYLE, 'library') + local view_style = buffer:style_of_name('library') assert_equal(view_style, style) local view_color = view.style_fore[view_style] assert_equal(view_color, color) @@ -2998,7 +2997,21 @@ function test_set_theme() end function test_set_lexer_style() + buffer.new() + buffer:set_lexer('java') + buffer:add_text('foo()') + buffer:colorize(1, -1) + local style = buffer:style_of_name('function') + assert_equal(buffer.style_at[1], style) + local default_fore = view.style_fore[view.STYLE_DEFAULT] + assert(view.style_fore[style] ~= default_fore, 'function name style_fore same as default style_fore') + view.style_fore[style] = view.style_fore[view.STYLE_DEFAULT] + assert_equal(buffer.style_fore[style], default_fore) + buffer:close(true) -- Defined in Lua lexer, which is not currently loaded. + assert(buffer:style_of_name('library'), view.STYLE_DEFAULT) + -- Emulate a theme setting to trigger an LPeg lexer style refresh, but without + -- a token defined. view.property['style.library'] = view.property['style.library'] end |