Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 13 additions & 5 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,30 @@ jobs:
- run: sudo apt-get install ninja-build clang-19
- run: ./run.py
env:
IRIS_CXX_COMPILER: clang++-19
CXX: clang++-19
- uses: pre-commit/action@v3.0.0
unit_tests:
gcc_unit_tests:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- run: sudo apt-get install ninja-build g++-14
- run: ./run.py test
env:
CXX: /usr/bin/g++-14
clang_unit_tests:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- run: sudo apt-get install clang-19
- run: ./run.py test
env:
IRIS_CXX_COMPILER: clang++-19
CXX: clang++-19
integration_tests:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- run: sudo apt-get install clang-19
- run: sudo apt-get install ninja-build g++-14
- run: ./run.py test -I
env:
CXX: /usr/bin/g++-14
PYTEST_ADDOPTS: "--color=yes"
IRIS_CXX_COMPILER: clang++-19
2 changes: 0 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
cmake_minimum_required(VERSION 3.22.0)
set(CMAKE_CXX_COMPILER "/usr/bin/clang++")
project(iris LANGUAGES CXX)

option(RUN_TESTS "Run unit tests" OFF)
Expand All @@ -21,7 +20,6 @@ add_compile_options(-Wall)
add_compile_options(-Wextra)
add_compile_options(-pedantic)
add_compile_options(-Wconversion)
add_compile_options(-Wno-implicit-int-float-conversion)
add_compile_options(-Wimplicit-fallthrough)

if(ENABLE_ASAN)
Expand Down
2 changes: 0 additions & 2 deletions cmake/ci_toolchain.cmake

This file was deleted.

8 changes: 0 additions & 8 deletions run.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,6 @@ def run_shell_cmd(
return subprocess.run(cmd.split(), env=env).returncode


def ci() -> bool:
return not not os.environ.get("CI", "")


def loc() -> int:
if not shutil.which("cloc"):
print("cloc not installed...")
Expand Down Expand Up @@ -137,8 +133,6 @@ def test(testname: str | None, asan: bool) -> int:
compile_cmd = "cmake -G Ninja -DRUN_TESTS=true -S . -B build"
if asan:
compile_cmd += " -DENABLE_ASAN=true"
if ci():
compile_cmd += " -DCMAKE_TOOLCHAIN_FILE=cmake/ci_toolchain.cmake"

ret: int = 0
ret = run_shell_cmd(compile_cmd)
Expand Down Expand Up @@ -168,8 +162,6 @@ def build(release: bool = False) -> int:
cmd: str = "cmake -G Ninja -S . -B build"
if release:
cmd += " -DRELEASE=true"
if ci():
cmd += " -DCMAKE_TOOLCHAIN_FILE=cmake/ci_toolchain.cmake"

ret = run_shell_cmd(cmd)
if ret:
Expand Down
120 changes: 30 additions & 90 deletions src/action.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,7 @@ template <typename T, typename U>
case ActionType::Backspace: {
if constexpr (std::is_same_v<U, Redraw>) {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: Backspace");
}
if (logger != nullptr) { logger->info("Action called: Backspace"); }

// Skip if cur at 0,0
if (v->get_active_model()->current_line == 0 &&
Expand Down Expand Up @@ -114,9 +112,7 @@ template <typename T, typename U>
case ActionType::DelCurrentChar: {
if constexpr (std::is_same_v<U, Redraw>) {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: DelCurrentChar");
}
if (logger != nullptr) { logger->info("Action called: DelCurrentChar"); }

v->get_active_model()->undo_stack.push_back(Change(
ActionType::DelCurrentChar, v->get_active_model()->current_line,
Expand All @@ -132,9 +128,7 @@ template <typename T, typename U>

case ActionType::DelCurrentLine: {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: DelCurrentLine");
}
if (logger != nullptr) { logger->info("Action called: DelCurrentLine"); }

v->get_active_model()->undo_stack.push_back(Change(
ActionType::DelCurrentLine, v->get_active_model()->current_line,
Expand All @@ -148,9 +142,7 @@ template <typename T, typename U>

case ActionType::DelCurrentWord: {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: DelCurrentWord");
}
if (logger != nullptr) { logger->info("Action called: DelCurrentWord"); }

const WordPos word = v->get_active_model()->current_word();

Expand All @@ -164,18 +156,14 @@ template <typename T, typename U>

case ActionType::EndOfLine: {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: EndOfLine");
}
if (logger != nullptr) { logger->info("Action called: EndOfLine"); }

v->cursor_end_of_line();
} break;

case ActionType::JumpEndOfWord: {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: JumpEndOfWord");
}
if (logger != nullptr) { logger->info("Action called: JumpEndOfWord"); }

std::optional<int> count = v->get_active_model()->end_of_word_pos();
if (count.has_value()) {
Expand All @@ -188,35 +176,25 @@ template <typename T, typename U>

case ActionType::JumpNextPara: {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: JumpNextPara");
}
if (logger != nullptr) { logger->info("Action called: JumpNextPara"); }

std::optional<unsigned int> count = v->get_active_model()->next_para_pos();
if (count.has_value()) {
v->cursor_down(count.value());
}
if (count.has_value()) { v->cursor_down(count.value()); }

} break;

case ActionType::JumpPrevPara: {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: JumpPrevPara");
}
if (logger != nullptr) { logger->info("Action called: JumpPrevPara"); }

std::optional<unsigned int> count = v->get_active_model()->prev_para_pos();
if (count.has_value()) {
v->cursor_up(count.value());
}
if (count.has_value()) { v->cursor_up(count.value()); }

} break;

case ActionType::JumpNextWord: {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: JumpNextWord");
}
if (logger != nullptr) { logger->info("Action called: JumpNextWord"); }

std::optional<int> count = v->get_active_model()->next_word_pos();
if (count.has_value()) {
Expand All @@ -229,9 +207,7 @@ template <typename T, typename U>

case ActionType::JumpPrevWord: {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: JumpPrevWord");
}
if (logger != nullptr) { logger->info("Action called: JumpPrevWord"); }

std::optional<int> count = v->get_active_model()->prev_word_pos();
if (count.has_value()) {
Expand All @@ -245,9 +221,7 @@ template <typename T, typename U>
case ActionType::MoveCursorLeft: {
if constexpr (std::is_same_v<U, bool>) {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: MoveCursorLeft");
}
if (logger != nullptr) { logger->info("Action called: MoveCursorLeft"); }

return v->cursor_left();
}
Expand All @@ -259,39 +233,31 @@ template <typename T, typename U>
case ActionType::MoveCursorUp: {
if constexpr (std::is_same_v<U, bool>) {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: MoveCursorUp");
}
if (logger != nullptr) { logger->info("Action called: MoveCursorUp"); }
return v->cursor_up();
}
} break;

case ActionType::MoveCursorDown: {
if constexpr (std::is_same_v<U, bool>) {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: MoveCursorDown");
}
if (logger != nullptr) { logger->info("Action called: MoveCursorDown"); }
return v->cursor_down();
}
} break;

case ActionType::MoveCursorRight: {
if constexpr (std::is_same_v<U, bool>) {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: MoveCursorRight");
}
if (logger != nullptr) { logger->info("Action called: MoveCursorRight"); }

return v->cursor_right();
}
} break;

case ActionType::MoveLineDown: {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: MoveLineDown");
}
if (logger != nullptr) { logger->info("Action called: MoveLineDown"); }

v->get_active_model()->move_line_down();
v->cursor_down();
Expand All @@ -300,9 +266,7 @@ template <typename T, typename U>

case ActionType::MoveLineUp: {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: MoveLineUp");
}
if (logger != nullptr) { logger->info("Action called: MoveLineUp"); }

v->get_active_model()->move_line_up();
v->cursor_up();
Expand All @@ -311,9 +275,7 @@ template <typename T, typename U>

case ActionType::Newline: {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: Newline");
}
if (logger != nullptr) { logger->info("Action called: Newline"); }

v->get_active_model()->undo_stack.push_back(Change(
ActionType::Newline, v->get_active_model()->current_line,
Expand All @@ -335,45 +297,35 @@ template <typename T, typename U>

case ActionType::StartOfLine: {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: Newline");
}
if (logger != nullptr) { logger->info("Action called: Newline"); }

v->cursor_start_of_line();

} break;

case ActionType::TabNew: {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: TabNew");
}
if (logger != nullptr) { logger->info("Action called: TabNew"); }

v->tab_new();

} break;
case ActionType::TabNext: {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: TabNext");
}
if (logger != nullptr) { logger->info("Action called: TabNext"); }

v->tab_next();
} break;
case ActionType::TabPrev: {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: TabPrev");
}
if (logger != nullptr) { logger->info("Action called: TabPrev"); }

v->tab_prev();
} break;

case ActionType::ToggleCase: {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: Newline");
}
if (logger != nullptr) { logger->info("Action called: Newline"); }

v->get_active_model()->toggle_case();

Expand All @@ -386,9 +338,7 @@ template <typename T, typename U>
case ActionType::TriggerRedo: {
if constexpr (std::is_same_v<U, bool>) {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: TriggerRedo");
}
if (logger != nullptr) { logger->info("Action called: TriggerRedo"); }

return v->get_active_model()->redo(v->view_size.horizontal);
}
Expand All @@ -399,9 +349,7 @@ template <typename T, typename U>
case ActionType::TriggerUndo: {
if constexpr (std::is_same_v<U, bool>) {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: TriggerUndo");
}
if (logger != nullptr) { logger->info("Action called: TriggerUndo"); }

return v->get_active_model()->undo(v->view_size.horizontal);
}
Expand All @@ -412,9 +360,7 @@ template <typename T, typename U>
case ActionType::ChangeMode: {
if constexpr (std::is_same_v<T, Mode>) {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: ChangeMode");
}
if (logger != nullptr) { logger->info("Action called: ChangeMode"); }

v->ctrlr_ptr->set_mode(action.payload);
}
Expand Down Expand Up @@ -477,9 +423,7 @@ template <typename T, typename U>
case ActionType::InsertChar: {
if constexpr (std::is_same_v<T, char>) {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: InsertChar");
}
if (logger != nullptr) { logger->info("Action called: InsertChar"); }

v->get_active_model()->insert(action.payload);
v->cur.move_right();
Expand All @@ -494,9 +438,7 @@ template <typename T, typename U>
case ActionType::ReplaceChar: {
if constexpr (std::is_same_v<T, char>) {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Action called: ReplaceChar");
}
if (logger != nullptr) { logger->info("Action called: ReplaceChar"); }

v->get_active_model()->undo_stack.push_back(Change(
ActionType::ReplaceChar, v->get_active_model()->current_line,
Expand All @@ -508,9 +450,7 @@ template <typename T, typename U>

default: {
auto logger = spdlog::get("basic_logger");
if (logger != nullptr) {
logger->info("Unknown action called");
}
if (logger != nullptr) { logger->info("Unknown action called"); }

return {};
} break;
Expand Down
Loading
Loading