Git Product home page Git Product logo

turbo's Introduction

Turbo

Turbo is an experimental text editor for the terminal, based on the Scintilla code editing component by Neil Hodgson and the Turbo Vision application framework.

It was created to demonstrate new features in Turbo Vision. In particular, it has served as testing ground for Turbo Vision's Unicode capabilities.

As a text editor, Turbo aims at being intuitive and easy to use. Usability and productivity are its two other major objectives, although it has not got that far yet. And only for being a Turbo Vision application, it offers a vintage look and feel.

The original location of this project is https://github.com/magiblot/turbo.

Turbo

Downloads

  • Unix systems: you'll have to build Turbo yourself. You may follow the build instructions in the next section.
  • Windows: you can find up-to-date binaries in the Actions page. Click on the first successful workflow (with a green tick) in the list. At the bottom of the workflow page, as long as you have logged in to GitHub, you'll find an Artifacts section with the following files:
    • turbo-x86.zip: 32-bit executable built with MSVC. Windows Vista or later required.
    • turbo-x64.zip: 64-bit executable built with MSVC. x64 Windows Vista or later required.

Building

First of all, you should clone this repository along its submodules with the --recursive option of git clone.

Then, make sure the following dependencies are installed:

  • CMake.
  • A compiler supporting C++17.
  • libncursesw (note the 'w') (Unix only).

Additionally, you may also want to install these optional dependencies:

  • libmagic for better recognition of file types (Unix only).
  • libgpm for mouse support on the linux console (Linux only).
  • xsel, xclip and/or wl-clipboard for system clipboard integration (Unix only, except macOS).

Turbo can be built with the following commands:

cmake . -DCMAKE_BUILD_TYPE=Release && # Or 'RelWithDebInfo', or 'MinSizeRel', or 'Debug'.
cmake --build .

The above will generate the turbo binary.

Detailed build instructions for Ubuntu 20.04
sudo apt update && sudo apt upgrade
sudo apt install build-essential cmake gettext-base git libgpm-dev libmagic-dev libncursesw5-dev xsel
git clone --recursive https://github.com/magiblot/turbo.git
cd turbo
cmake . -DCMAKE_BUILD_TYPE=Release
cmake --build . -- -j$(nproc) # Build Turbo.
sudo cp turbo /usr/local/bin/ # Install (optional).
Detailed build instructions for Ubuntu 18.04
sudo apt update && sudo apt upgrade
sudo apt install build-essential cmake g++-8 gettext-base git libgpm-dev libmagic-dev libncursesw5-dev xsel
git clone --recursive https://github.com/magiblot/turbo.git
cd turbo
CXX=g++-8 cmake . -DCMAKE_BUILD_TYPE=Release
cmake --build . -- -j$(nproc) # Build Turbo.
sudo cp turbo /usr/local/bin/ # Install (optional).

Usage

From the command line

  • turbo [file...]

In order to open several files in a directory tree you should use wildcards or subcommands, if they are supported by your command shell. For example, in Unix:

# Open all .c and .h files in the current directory and its subdirectories
turbo `find . -type f -name '*.c' -o -name '*.h'`
# Open all files in the current directory and its subdirectories, excluding executables and hidden files or directories
turbo `find . -type f \! -executable \! -path '*/.*'`

In-app

As said earlier, Turbo has been designed to be intuitive. So you probably already know how to use it!

Some keybindings are:

  • Ctrl+C/Ctrl+Ins: copy.
  • Ctrl+V/Shift+Ins: paste.
  • Ctrl+X/Shift+Del: cut.
  • Ctrl+Z, Ctrl+Y: undo/redo.
  • Tab, Shift+Tab: indent/unindent.
  • Ctrl+E: toggle comment.
  • Ctrl+A: select all.
  • Shift+Arrow: extend selection.
  • Ctrl+F: find.
  • Ctrl+R: replace.
  • Ctrl+G: go to line.
  • Ctrl+Back/Alt+Back, Ctrl+Del: erase one word left/right.
  • Ctrl+Left/Alt+Left, Ctrl+Right/Alt+Right: move one word left/right.
  • Ctrl+Shift+Up/Alt+Shift+Up, Ctrl+Shift+Down/Alt+Shift+Down: move selected lines up/down.
  • Ctrl+N: create new document.
  • Ctrl+O: "open file" dialog.
  • Ctrl+S: save document.
  • Ctrl+W: close focused document.
  • F6, Shift+F6: next/previous document (in MRU order).
  • Ctrl+Q/Alt+X: exit the application.

In environments with extended keyboard support (e.g. the Linux console, Windows or Kitty ≥ 0.20.0), the following key shortcuts may also work:

  • Ctrl+Shift+Z: redo.
  • Ctrl+Tab/Alt+Tab, Ctrl+Shift+Tab/Alt+Shift+Tab: next/previous document (in MRU order).
  • Shift+Enter: find previous (in the "find" text box).
  • Ctrl+//Ctrl+_: toggle comment.

Support for these key combinations may vary among terminal applications, but any issue on this should be reported to Turbo Vision instead.

Clipboard support

See the Turbo Vision documentation.

Features

Scintilla has lots of features, of which Turbo only offers a few. Making more of them available is just a matter of time, so contributions are welcome.

Below is a TO-DO list of features I would like to implement in Turbo:

  • Several files open at the same time.
  • Line numbers.
  • Word wrap.
  • Suspend to shell.
  • Unicode in documents (in particular, UTF-8).
  • Double-width characters.
  • Opening binary files without freaking out.
  • List of open documents in MRU order.
  • Tree view of open documents.
  • Tree view sorted alphabetically.
  • Case-insensitive search.
  • Find as you type.
  • Replace.
  • Go to line.
  • List of recently opened files.
  • Remove trailing whitespaces on save.
  • Ensure newline at end of file.
  • Detect open files modified on disk.
  • Persistent configuration.
  • Keybinding customization.
  • Color scheme customization.
  • Syntax highlighting for some languages (C/C++, Rust, Python, JavaScript, Make, Bash, Ruby, JSON, YAML, HTML, INI).
  • Syntax highlighting for the rest of languages supported by Scintilla.
  • Comment toggling.
  • Brace match highlighting.
  • VIM input mode.
  • Localization.
  • Integration with the system clipboard.
  • Unicode in dialog text boxes (this depends on Turbo Vision).
  • True Color support (this depends on Turbo Vision).

turbo's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

turbo's Issues

Background color issue when line numbers are enabled

Hi @magiblot, I'm seeing an issue in drawing the background of some blank cells when line numbers are enabled. Some cells are black instead of the expected background color; thus, this is not detectable when the editor background is black. I pulled turbo commit 3545036 and applied the following diff to source/turbo-core/styles.cc:

diff --git a/source/turbo-core/styles.cc b/source/turbo-core/styles.cc
index 370b9fd..cad997a 100644
--- a/source/turbo-core/styles.cc
+++ b/source/turbo-core/styles.cc
@@ -123,7 +123,7 @@ Language detectFileLanguage(const char *filePath)

 extern constexpr ColorScheme schemeDefault =
 {
-    /* sNormal           */ {{}      , {}                       },
+    /* sNormal           */ {{}      , '\x9'                    },
     /* sSelection        */ {'\x1'   , '\x7'                    },
     /* sWhitespace       */ {'\x5'   , {}                       },
     /* sCtrlChar         */ {'\xD'   , {}                       },

Then I get the result shown in the animation below. I get the same behavior in tmbasic with its fully customized color scheme. It's not quite random but I don't know what's going on. The issue vanishes if I disable line numbers. I reproduced in Windows/conhost and in Linux/PuTTY. Let me know if you want me to git bisect this. Cheers!

Can't compile

Hello!
First of all I'm extremely excited with your revival of TurboVision! It's amazing that someone still remembers it!
I can't compile. I guess it's something related to C++ 17, but I'm not sure since I'm Ruby developer not C++.
Can you help me please?

chernish2@mintbox:/soft$ cd turbo/
chernish2@mintbox:
/soft/turbo$ cd tvision/
chernish2@mintbox:~/soft/turbo/tvision$ cmake .
CMake Error at CMakeLists.txt:2 (cmake_policy):
Policy "CMP0091" is not known to this version of CMake.

-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring incomplete, errors occurred!
See also "/home/chernish2/soft/turbo/tvision/CMakeFiles/CMakeOutput.log".

few warnings

I have a fedora33

[ 60%] Built target tvision
Scanning dependencies of target scintilla
[ 61%] Building CXX object CMakeFiles/scintilla.dir/Unity/unity_5_cxx.cxx.o
[ 61%] Building CXX object CMakeFiles/scintilla.dir/Unity/unity_4_cxx.cxx.o
[ 61%] Building CXX object CMakeFiles/scintilla.dir/Unity/unity_3_cxx.cxx.o
[ 62%] Building CXX object CMakeFiles/scintilla.dir/Unity/unity_2_cxx.cxx.o
In file included from /home/pavel/src/turbo/CMakeFiles/scintilla.dir/Unity/unity_2_cxx.cxx:10:
/home/pavel/src/turbo/scintilla/src/EditView.cxx: In member function ‘void Scintilla::EditView::DrawForeground(Scintilla::Surface*, const Scintilla::EditModel&, const Scintilla::ViewStyle&, const Scintilla::LineLayout*, Sci::Line, Scintilla::PRectangle, Scintilla::Range, Sci::Position, int, int, Scintilla::ColourOptional)’:
/home/pavel/src/turbo/scintilla/src/EditView.cxx:1770:13: warning: unused variable ‘drawWhitespaceBackground’ [-Wunused-variable]
1770 | const bool drawWhitespaceBackground = vsDraw.WhitespaceBackgroundDrawn() && !background.isSet;
| ^~~~~~~~~~~~~~~~~~~~~~~~
/home/pavel/src/turbo/scintilla/src/EditView.cxx:1774:19: warning: unused variable ‘indentWidth’ [-Wunused-variable]
1774 | const XYPOSITION indentWidth = model.pdoc->IndentSize() * vsDraw.spaceWidth;
| ^~~~~~~~~~~
In file included from /home/pavel/src/turbo/CMakeFiles/scintilla.dir/Unity/unity_2_cxx.cxx:10:
/home/pavel/src/turbo/scintilla/src/EditView.cxx: At global scope:
/home/pavel/src/turbo/scintilla/src/EditView.cxx:294:13: warning: ‘void DrawTabArrow(Scintilla::Surface*, Scintilla::PRectangle, int, const Scintilla::ViewStyle&)’ defined but not used [-Wunused-function]
294 | static void DrawTabArrow(Surface *surface, PRectangle rcTab, int ymid, const ViewStyle &vsDraw) {
| ^~~~~~~~~~~~
[ 62%] Building CXX object CMakeFiles/scintilla.dir/Unity/unity_1_cxx.cxx.o
[ 62%] Building CXX object CMakeFiles/scintilla.dir/Unity/unity_0_cxx.cxx.o
[ 63%] Linking CXX static library libscintilla.a
[ 63%] Built target scintilla
Scanning dependencies of target scilexers

/home/pavel/src/turbo/scintilla/lexers/LexDMIS.cxx: In member function ‘virtual void LexerDMIS::Lex(Sci_PositionU, Sci_Position, int, Scintilla::IDocument*)’:
/home/pavel/src/turbo/scintilla/lexers/LexDMIS.cxx:253:13: warning: ‘char* strncpy(char*, const char*, size_t)’ source argument is the same as destination [-Wrestrict]
253 | strncpy(tmpStr, this->UpperCase(tmpStr), (MAX_STR_LEN-1));
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ 73%] Building CXX object CMakeFiles/scilexers.dir/scintilla/lexers/LexDataflex.cxx.o
[ 74%] Building CXX object CMakeFiles/scilexers.dir/scintilla/lexers/LexDiff.cxx.o
[ 74%] Building CXX object CMakeFiles/scilexers.dir/scintilla/lexers/LexECL.cxx.o

cmake fail

following instructions for ubuntu
cmake complains:

-- (tvision) Found 'ncursesw': /usr/lib/x86_64-linux-gnu/libncursesw.so
-- (tvision) Found 'gpm': /usr/lib/x86_64-linux-gnu/libgpm.so
CMake Error at CMakeLists.txt:115 (install):
  install TARGETS given target "fmt" which does not exist in this directory.


-- Configuring incomplete, errors occurred!
See also "/home/unxed/turbo/CMakeFiles/CMakeOutput.log".
See also "/home/unxed/turbo/CMakeFiles/CMakeError.log".

CMakeOutput.log
CMakeError.log

Korean input support

Issue 1: When I type a Korean character(two byte width per Korean character), scrollbar is broken.
스크린샷 2023-01-03 오전 8 24 37

Issue 2: When I type a second Korean character, the first Korean character becomes one byte strange character.
스크린샷 2023-01-03 오전 8 24 48

Thanks for the great project again!

macOS build errors in `/deps/fmt/`

Hi, when building on macOS 12.4, arm64, with cmake --build . -j$(sysctl -n hw.logicalcpu)) build fails because of multiple build errors, originating in the fmt package.

Partial build output:

/my-repos/turbo/deps/fmt/src/os.cc:263:25: error: unknown type name 'error_code'; did you mean 'std::error_code'?
void file::dup2(int fd, error_code& ec) FMT_NOEXCEPT {
                        ^~~~~~~~~~
                        std::error_code
/Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/usr/include/c++/v1/system_error:315:24: note: 'std::error_code' declared here
class _LIBCPP_TYPE_VIS error_code
                       ^
/my-repos/turbo/deps/fmt/src/os.cc:266:26: error: use of undeclared identifier 'error_code'; did you mean 'std::error_code'?
  if (result == -1) ec = error_code(errno);
                         ^
/CommandLineTools/SDKs/MacOSX12.3.sdk/usr/include/c++/v1/system_error:315:24: note: 'std::error_code' declared here
class _LIBCPP_TYPE_VIS error_code
                       ^
2 errors generated.
make[2]: *** [deps/fmt/CMakeFiles/fmt.dir/src/os.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....

Any pointers to how to resolve this issue?

deb ?

Hi,
Any chance of a deb for debian/ubuntu ?

Cheers
S

missing dependencies in Ubuntu 20.04 instructions.

Following the "Detailed build instructions for Ubuntu 20.04" in readme.md, running on Ubuntu (server) 20.04.2 LTS,

I'm missing the dependency: pkg-config (easy to resolve).

But then I'm also missing the libxcb dependency, as per error:

-- Checking for module 'xcb'
--   No package 'xcb' found
CMake Error at /usr/share/cmake-3.16/Modules/FindPkgConfig.cmake:463 (message):
  A required package was not found
Call Stack (most recent call first):
  /usr/share/cmake-3.16/Modules/FindPkgConfig.cmake:643 (_pkg_check_modules_internal)
  deps/libclipboard/CMakeLists.txt:66 (pkg_check_modules)

and "apt-cache search libxcb" shows a lot of packages, and I'm not sure which one (or all?) is actually needed.

EDIT: On further inspection, xcb is a (replacement for) X11 library, which may be an issue on my non-GUI Ubuntu Server installation.

I was only installing to test out libtvision, and how it would work over SHH or (in Windows PuTTY). I now moved testing to a GUI version of Ubuntu. As long as libtvision doesn't depend on X11 I'm happy. Unless it is particularly easy to solve the dependency, the simplest solution would be to rename the instructions to "Detailed build instructions for Ubuntu 20.04 (Desktop)"

I'm very impressed with how well it works over SSH/PuTTY, also the window/screen resizing!

FreeBSD port

I will try to make freebsd port of this and add some feature to make it full c++ ide for now

Bug report

Sorry for not providing all the details, I'm kind of in a hurry, but bad news are: mouse sequences are somehow leaking into edited files.
Platform: Ubuntu 18.04 on WSL / Windows 10 / standard TTY. It has turned out suddenly, as a week or so I was happily editing -and- actually using mouse to switch between windows, arrange windows and access menus.

I might suspect that the bug might be somewhere around seleting text with mouse.

[Feature request]

  • It would be nice to have a "Help" menu on the top right, like almost every old TV software has. Just for the feel of it. It could contain only one item like "About". Would be super-cool!
  • Also it would be nice to have a switch between 25 lines and 43/50 lines (like ALT+F9 in NC or VC for example).

turbo

Capitalize First

aabb.zip
Hi guys
I miss capitalize words function in this text editor.
I want tranform text like aa bb cc into Aa Bb Cc
I suggest ctrl + 3 keyboard shortcut in Settings.

Take a look at this demo:
aabb.cc

Can't replace text

Very nice job. I have been using SciTE for a long time, I am tired of vi/vim, I refused to learn emacs a long time ago, and I tried textadept curses but it can't handle shift-arrow if you are not it a terminal emulator. Turbo really brings back memories... I have not tried everything but I can't seem to get replace to work. Ctrl+R does nothing and selecting it from the Edit menu also does nothing - the menu doesn't even close. I am running on the latest Arch linux. Other color schemes would be nice. I was going to try and experiment with the code but I figured I'd break something. Thanks for your efforts.

install TARGETS given target "fmt" which does not exist.

Result of cmake . -DCMAKE_BUILD_TYPE=Release
Status: R

CMake Error at deps/CMakeLists.txt:24 (add_subdirectory):
The source directory

/usr/local/src/sdm/turbo/trunk/deps/fmt

does not contain a CMakeLists.txt file.
Call Stack (most recent call first):
CMakeLists.txt:81 (include)

CMake Error at deps/CMakeLists.txt:34 (add_subdirectory):
The source directory

/usr/local/src/sdm/turbo/trunk/deps/tvision

Call Stack (most recent call first):
CMakeLists.txt:81 (include)

CMake Error at deps/CMakeLists.txt:34 (add_subdirectory):
The source directory

/usr/local/src/sdm/turbo/trunk/deps/tvision

does not contain a CMakeLists.txt file.
Call Stack (most recent call first):
CMakeLists.txt:81 (include)

CMake Error at CMakeLists.txt:110 (install):
install TARGETS given target "fmt" which does not exist.

-- Configuring incomplete, errors occurred!

does not contain a CMakeLists.txt file.

Compilation error under MinGW and clang/macOS

I got the following error building turbo for x86_64-w64-mingw32. I'm cross-compiling from Arch Linux using a fresh install.

In file included from /tmp/turbo/src/tpath.cc:2,
                 from /tmp/turbo/build/CMakeFiles/turbo-ui.dir/Unity/unity_1_cxx.cxx:7:
/usr/x86_64-w64-mingw32/include/tvision/compat/io.h:20:21: error: no include path in which to search for io.h
   20 | #include_next <io.h>
      |                     ^

If I comment out that line in compat/io.h, it builds fine.

List of recently opened files

hi magiblot

i am going to implement this new feature called List of recently opened files in Turbo.
it it ok to save/open recently opened files metadata as/from JSON file ?
is it ok using parser - dropbox/json11 ?
if yes, i am going to write own recently opened files metadata cpp json writer.

Very nice job. Terminal subwindow would be great!

This is a very nice CLI editor. I love it. The code is also clean and very well written.

If not done yet, it would be great to have built-in terminal as well, so that one can edit their files and then switch to that terminal window to run 'make' for example to build the project, 'gdb' for debugging for example, etc. This is will make it an ALL IN ONE editor yet still so simple.

I can try to work on it on my free time as it helps me a lot edit and compile code in remote machines (microcontrollers and embedded systems) without need to have multiple ssh sessions or need to use tmux.

System clipboard integration

Hi @magiblot, in commit f278299 the Clipboard class was dropped. I'm trying to figure out how to fix tmbasic accordingly. Is turbo no longer attempting to integrate with the system clipboard, or am I missing a new spot where that integration happens? Is there an integration point where I can bring back libclipboard as a tmbasic-level dependency? I appreciate any tips you can provide!

configurable Home key behavoir

In most editors, Home key means "go to the 1st character of a string". In turbo, Home key means "go to the 1st non-space character of a string if pressed once, and go to the 1st character of a string if pressed for the second time".

Can this behavior be made configurable to make turbo react on Home key just like all other editors? Thanks!

temporary disable "auto indent" before doing clipboard paste

...or some text is being pasted with unnecessary spaces (this sample is copied from turbo's readme on github in firefox):

Building

First of all, you should clone this repository along its submodules with git clone --recursive.

Then, make sure the following dependencies are installed:

    CMake.
        A compiler supporting C++17.
            libncursesw (note the 'w').
                libfmt.
                

handle indentation properly when saving

Hi
Can Turbo handle tab indentation properly at saving?
Please take a closer look at aabb.cc example. It was written with indentation 4.
It opens correctly in Turbo but when saving it converts my 1 tab 4 spaces indentation to actual 4 empty spaces.
Some people use tab indentation 2 or even indentation 8.

As a workaround I use bcpp utillity which can hadle indentation properly. Is there any easy fix or can we merge bcpp into Turbo?

https://invisible-island.net/bcpp/
aabb.zip

build error

 You have called ADD_LIBRARY for library scintilla without any source files. This typically indicater
 oblem with your CMakeLists.txt file
                                                                                              Yo hve
 called ADD_LIBRARY for library scilexers without any source files. This typically indicate a robem w
 ith your CMakeLists.txt file
                                                                                               CMake
 Error at CMakeLists.txt:61 (add_executable):
   add_executable called with incorrect number of arguments



 CMake Error at CMakeLists.txt:68 (target_include_directories):
   Cannot specify include directories for target "turbo" which is not built by
   this project.



 CMake Error at CMakeLists.txt:75 (target_sources):
   Cannot specify sources for target "turbo" which is not built by this

Errors occurred during the last pass                                                                  
                                                                                   CMake Version 3.9.3
Press [e] to exit help

Can't clone the repository

I tried git clone and gh repo clone magiblot/turbo, none of them work. I constantly get credentials error which is weird as this repository suppose to be read-only public repo, isn't it?

example for git:
$ git clone --recursive https://github.com/magiblot/turbo.git
Cloning into 'turbo'...
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

example for gh:
$ gh repo clone magiblot/turbo
Cloning into 'turbo'...
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
exit status 128

Feature Request: Load a specific directory tree in the document tree.

Hi, first of all -- what an absolutely lovely editor! After trying out dozens of windows console editors including micro and fte, I've finally fell in love with Turbo. I'd like to use it as a drop-in replacement of Notepad++, and it would be great if there was an option for the editor to remember the document tree from the previous session (or an option to populate it with a specific directory), so I can continue working right away every morning, with all relevant files ready to switch to.

Thanks, and looking forward to all upcoming features!

Shift+Arrow_keys text selection is not working under putty4far2l

Tested the new improved clipboard support (great job, thanks!). Noticed that in the far2l extension mode, text selection with the shift+arrow_keys works under far2l, but does not work in putti4far2l. Can't figure out for now if the bug is in putty4far2l or in turbo.

Weirdness when resizing under windows.

image
2022-05-16-000062

I have made similar issues for other text editors (vim, helix) so I am not looking for a fix but rather what causes this ? As in why does resizing breaks text editors on windows whereas macOS and linux work fine. If someone happens to know the cause, would be good to know the underlying reason.

Integrate a Terminal

Another nice feature (for developers) is to integrate a terminal into turbo.

This will allow to run commands (e.g. to compile code, etc.)

Alternatively, add a keyboard shortcut to the "Suspend" option.

Great project! Integration with Github copilot (as a plugin)

Hi, I was following your project, and I admire your job and continuous effort on this project.

In the future, how about creating a plugin system and implementing Github copilot as a plugin?
Now AI is developing software quite well, so this feature can be a killing point of turbo editor.

Thanks,
Kangmo

Open a folder (like VS Code)

It will be great if you can extend turbo to open an entire folder (like VS Code). Example:

turbo .

This will open the current folder and lists all the files in the "Document Tree View".

macOS universal binary

Hi @magiblot @stuaxo

I have Xcode 12.2 ready to produce macOS universal binary.
any idea how to build macOS universal binary from Turbo?
Can you please update CMake files with something like CMAKE_OSX_ARCHITECTURES=arm64;x86_64
?

Saving location and size of open windows

Hi, thanks for the great project.
I use turbo at daily work, but I have to open files that I was using each time I reboot my server.
Can we make turbo editor to remember all open windows when it exits, so that it can open them again when it runs again?

If so, It can save a huge amount of time. Thank you.

COLUMNS and LINES env

Please add support to follow those so Turbo does not expand to full terminal space when it is not wanted

( sidenote: can help to solve #12 in a very simple way as demonstrated with another editor here https://pix.mathieui.net/o/kZTPc.png, even more powerfull when using VT420 with configurables margins for drawing children with their own scrolling zones )

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.