about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2022-09-19 00:37:08 -0700
committerKartik K. Agaram <vc@akkartik.com>2022-09-19 00:37:08 -0700
commit690a1c334c68a4423fdd9752e9918aec06e135df (patch)
treeadd7fb2e4066aba2a6b6f9ae04ea658f0ca93d5c
parentfd7d36fefd1791d1ef761e5a312cb54aee6d6eb3 (diff)
downloadtext.love-690a1c334c68a4423fdd9752e9918aec06e135df.tar.gz
source: show files in MRU order
I'm not going to save this MRU order across sessions for now. It's good
enough to save cursor positions for individual files, I think.
-rw-r--r--commands.lua12
1 files changed, 8 insertions, 4 deletions
diff --git a/commands.lua b/commands.lua
index 1ced11d..dfac9b1 100644
--- a/commands.lua
+++ b/commands.lua
@@ -64,10 +64,6 @@ function source.draw_file_navigator()
   love.graphics.rectangle('fill', 0,Menu_status_bar_height, App.screen.width, File_navigation.num_lines * Editor_state.line_height + --[[highlight padding]] 2)
   local x,y = 5, Menu_status_bar_height
   for i,filename in ipairs(File_navigation.candidates) do
-    if filename == 'source' then
-      App.color(Menu_border_color)
-      love.graphics.line(Menu_cursor-10,2, Menu_cursor-10,Menu_status_bar_height-2)
-    end
     x,y = add_file_to_menu(x,y, filename, i == File_navigation.index)
     if Menu_cursor >= App.screen.width - 5 then
       break
@@ -134,11 +130,19 @@ function add_file_to_menu(x,y, s, cursor_highlight)
 end
 
 function navigate_to_file(s)
+  move_candidate_to_front(s)
   local candidate = guess_source(s..'.lua')
   source.switch_to_file(candidate)
   reset_file_navigator()
 end
 
+function move_candidate_to_front(s)
+  local index = array.find(File_navigation.all_candidates, s)
+  assert(index)
+  table.remove(File_navigation.all_candidates, index)
+  table.insert(File_navigation.all_candidates, 1, s)
+end
+
 function reset_file_navigator()
   Show_file_navigator = false
   File_navigation.index = 1