This is in initial development, the project has only just started.
Main Library And Applications
Nimble Utilities
NimbleLIB is the library of modules used by NimbleIDE and TestNimbleIDE. It contains the following modules:
Module | Description |
---|---|
Screen | Low-level ASCII encoded console screen functionality |
Curses | Various support for the ncurses SDK |
ErrorHandling | ErrorHandling and error numbers reporting failures in the library |
IDE | Editor and editing support for the IDE |
Global | Global information, shared across modules |
Logger | Logs formated messages to various outputs |
Utilities | Functionality shared across the modules |
Framework | Framework for the supporting CPUs |
This module contains basic support for screen clear, displaying text and moving the cursor.
Basic ASCII extended codes are used to clear, write to and move the cursor on the screen.
The Curses module is used to create a screen buffer and display it on the screen. It is used by the NimbleIDE
and TestNimbleIDE
applications.
Curses supports not only the screen display and handling, but also windows and input handling.
This static class handles all errors that occur in the application. It can be used to log errors to a file or to the screen.
This module contains the core functionality to allow editing and display of information. Editing is via a IDEEditor class and IDEEditBox class IDEDialog is the generic dialog class, allowing the display of error messages.
Functionality that is used by multiple modules is placed in the Utilities module.
Defines and data that are used within all the modules are placed in the Global module.
Linked into the ErrorHandling module, this module handles logging to a file.
This module will handle the framework for the hardware.
The main IDE, linked with NimbleLIB. It currently tests the development of the NimbleLIB modules.
This is currently in development.
This is in early development, currently used to prove development of the ongoing project.
The end result will be a console based programmers calculator that will work with binary, octal, decimal and hexadecimal.
This utility allows quick selection of actions from a menu.
Setup to allow for easy integration into other applications.
The menu is a simple list of options, with a title and a prompt.
The options are numbered in a configuration file that is loaded from
the current directory where NimbleMunu.exe
is ran.
Configuration file is called NimbleMenu.cfg
Items are numbered from 0 to 9, and are displayed in the order they are in the file.
Each item has a title and a command to run.
Please note 'cd' commands are supported, 'cd' is stripped and also the '\n' is stripped.
Each command is separated by either of the following:
&
- run the command and continue&&
- runs the next command if no errors are reported by the previous commandThe following is a working example of the configuration file - called NimbeMenu.cfg
.
// Nimble Menu Items -
Items = 9
1^Directory - NimbleIDE^cd D:\NewProjects\Utilities\NimbleIDE\Trunk
2^Directory - USBConsoleSuit^cd D:\NewProjects\Utilities\USBHIDConsoleSuite\Trunk
3^Clean-Build Project^cd build && rmdir -f . & cmake .. && cmake --build .
4^Build & Run NimbleIDE^ cmake --build build --target NimbleIDE && cd build\NimbleIDE\Debug\ && .\NimbleIDE.exe
5^Build & Run NimbleMenu^ cmake --build build --target NimbleMenu && cd build\NimbleUtils\NimbleMENU\Debug\ && .\NimbleMENU.exe
6^Build & Run TestNimbleLIB^ cmake --build build --target TestNimbleLIB && cd build\TestNimbleLIB\Debug\ && .\TestNimbleLIB.exe && timeout /t 10
7^Explorer at this location^explorer .
8^Far Manager at this location^"c:\Program Files\Far Manager\Far.exe" .
9^Lazygit at this location^lazygit.exe
The following applications unit test the Nimbe IDE and more importantly the modules within NimbleLIB
Tests the modules developed in NimbleIDE and NimbleLIB.
Complete tests for the NimbleLIB modules. Currently only tests the Screen and ErrorHandling modules.
Please follow the instructions below to install the application.
Retrieve the source code from GitHub:
git clone https://github.com/MadFly-Team/NimbleIDE.git NimbleIDE
cd NimbleIDE
git submodule init
git submodule update
cd NimbleIDE
mkdir build
cd build
cmake ..
cmake --build .
cd NimbleIDE
./build/NimbleIDE/Debug/NimbleIDE.exe
Run the tests:
cd NimbleIDE
./build/NimbleIDE/TestNimbleLIB/Debug/TestNimbleLIB.exe