Execute and load selection

This commit is contained in:
Krzosa Karol
2024-08-06 06:50:36 +02:00
parent b552f73ac9
commit 6e61816e1c
3 changed files with 14 additions and 15 deletions

View File

@@ -265,11 +265,9 @@ bool GlobalCommand(Event event) {
Buffer *buffer = GetBuffer(view->active_buffer); Buffer *buffer = GetBuffer(view->active_buffer);
Int p = ScreenSpaceToBufferPosErrorOutOfBounds(window, view, buffer, mouse); Int p = ScreenSpaceToBufferPosErrorOutOfBounds(window, view, buffer, mouse);
if (p != -1) { if (p != -1) {
Range enclose = EncloseExecWord(buffer, p); Range enclose = EncloseExecWord(buffer, p);
String16 string = GetString(*buffer, enclose); if (InBounds(view->carets[0].range, p)) enclose = view->carets[0].range;
String16 string = GetString(*buffer, enclose);
// Window *last_window = GetWindow(GetLastActiveWindow());
// View *last_view = GetView(last_window->active_view);
Command_EvalLua(view, string); Command_EvalLua(view, string);
} }
} }
@@ -283,8 +281,9 @@ bool GlobalCommand(Event event) {
Buffer *buffer = GetBuffer(view->active_buffer); Buffer *buffer = GetBuffer(view->active_buffer);
Int p = ScreenSpaceToBufferPosErrorOutOfBounds(window, view, buffer, mouse); Int p = ScreenSpaceToBufferPosErrorOutOfBounds(window, view, buffer, mouse);
if (p != -1) { if (p != -1) {
Range enclose = EncloseLoadWord(buffer, p); Range enclose = EncloseLoadWord(buffer, p);
String16 string = GetString(*buffer, enclose); if (InBounds(view->carets[0].range, p)) enclose = view->carets[0].range;
String16 string = GetString(*buffer, enclose);
view->carets.len = 1; view->carets.len = 1;
view->carets[0] = MakeCaret(p); view->carets[0] = MakeCaret(p);

View File

@@ -810,14 +810,16 @@ void WindowCommand(Event event, Window *window, View *view) {
} }
if (Ctrl(SDLK_Q)) { if (Ctrl(SDLK_Q)) {
Int p = GetFront(view->carets[0]); Caret caret = view->carets[0];
Range enclose = EncloseLoadWord(buffer, p); Range range = caret.range;
String16 string = GetString(*buffer, enclose); if (GetSize(caret.range) == 0) range = EncloseLoadWord(buffer, GetFront(caret));
String16 string = GetString(*buffer, range);
Open(string); Open(string);
} else if (Alt(SDLK_Q)) { } else if (Alt(SDLK_Q)) {
Int p = GetFront(view->carets[0]); Caret caret = view->carets[0];
Range enclose = EncloseExecWord(buffer, p); Range range = caret.range;
String16 string = GetString(*buffer, enclose); if (GetSize(caret.range) == 0) range = EncloseExecWord(buffer, GetFront(caret));
String16 string = GetString(*buffer, range);
Command_EvalLua(view, string); Command_EvalLua(view, string);
} }

View File

@@ -1,5 +1,3 @@
- we should be able to execute selection using mouse and keyboard (for now only main cursor)
- we should be able to execute a buffer (even scratch - we should be able to execute a buffer (even scratch
- search as a command to execute which is going to be in the title bar - search as a command to execute which is going to be in the title bar
- each buffer needs a directory even the special ones: C:\a\b\c\+errors? - each buffer needs a directory even the special ones: C:\a\b\c\+errors?