filter candidates in file navigator

[?]
Sep 18, 2022, 8:53 AM
RQUVBX627HPVMS77HCERQGTGFNP6JXSBBAZNR2PTNT6B7LRRGQIAC

Dependencies

  • [2] NYRESFK6 source: show all files in navigator
  • [3] MFZW24AN bugfix: disable typing while file navigator is open
  • [4] KKMFQDR4 editing source code from within the app
  • [5] QZ2SXLHF some debug prints
  • [6] D3FLL7SL start showing source menu file navigation state graphically
  • [*] IOCATA27 bugfix: never skip files in file navigator

Change contents

  • replacement in source.lua at line 14
    [4.166025][4.166025:166044]()
    candidates = {
    [4.166025]
    [4.12]
    all_candidates = {
  • edit in source.lua at line 48
    [4.166514]
    [4.166514]
    filter = '',
  • edit in source.lua at line 50
    [4.166518]
    [4.166518]
    File_navigation.candidates = File_navigation.all_candidates -- modified with filter
  • edit in source.lua at line 313
    [3.42]
    [3.42]
    textinput_on_file_navigator(t)
  • edit in commands.lua at line 56
    [4.206277]
    [2.29]
    App.color(Menu_command_color)
    local filter_text = to_text(File_navigation.filter)
    App.screen.draw(filter_text, 5, 5)
    draw_cursor(5 + App.width(filter_text), 5)
  • edit in commands.lua at line 74
    [8.89]
    [8.89]
    end
    end
    end
    function draw_cursor(x, y)
    -- blink every 0.5s
    if math.floor(Cursor_time*2)%2 == 0 then
    App.color(Cursor_color)
    love.graphics.rectangle('fill', x,y, 3,Editor_state.line_height)
    end
    end
    function source.file_navigator_candidates()
    if File_navigation.filter == '' then
    return File_navigation.all_candidates
    end
    local result = {}
    for _,filename in ipairs(File_navigation.all_candidates) do
    if starts_with(filename, File_navigation.filter) then
    table.insert(result, filename)
  • edit in commands.lua at line 96
    [4.206548]
    [4.206548]
    return result
  • edit in commands.lua at line 143
    [4.207233]
    [4.207233]
    File_navigation.index = 1
    File_navigation.filter = ''
    File_navigation.candidates = File_navigation.all_candidates
  • edit in commands.lua at line 150
    [4.207428]
    [4.207428]
    File_navigation.index = 1
    File_navigation.filter = ''
    File_navigation.candidates = File_navigation.all_candidates
    elseif chord == 'backspace' then
    local len = utf8.len(File_navigation.filter)
    local byte_offset = Text.offset(File_navigation.filter, len)
    File_navigation.filter = string.sub(File_navigation.filter, 1, byte_offset-1)
    File_navigation.index = 1
    File_navigation.candidates = source.file_navigator_candidates()
  • edit in commands.lua at line 283
    [4.207725]
    function textinput_on_file_navigator(t)
    File_navigation.filter = File_navigation.filter..t
    File_navigation.candidates = source.file_navigator_candidates()
    end