Convert Figma logo to code with AI

dail8859 logoNotepadNext

A cross-platform, reimplementation of Notepad++

8,974
545
8,974
56

Top Related Projects

Notepad++ official repository

162,288

Visual Studio Code

60,150

:atom: The hackable text editor

36,047

The official Vim repository

81,533

Vim-fork focused on extensibility and usability

Quick Overview

NotepadNext is an open-source, cross-platform text editor inspired by Notepad++. It aims to provide a familiar and feature-rich editing experience for users across different operating systems, including Windows, macOS, and Linux. NotepadNext is built using Qt and Scintilla, offering a blend of performance and functionality.

Pros

  • Cross-platform compatibility (Windows, macOS, Linux)
  • Familiar interface for Notepad++ users
  • Extensive language support and syntax highlighting
  • Active development and community support

Cons

  • Relatively new project, may have some stability issues
  • Limited plugin ecosystem compared to Notepad++
  • Some advanced features from Notepad++ may not be available yet
  • Learning curve for users not familiar with Notepad++

Getting Started

To get started with NotepadNext:

  1. Visit the NotepadNext GitHub repository
  2. Download the latest release for your operating system from the Releases page
  3. Extract the downloaded archive and run the executable
  4. For developers who want to build from source:
    git clone https://github.com/dail8859/NotepadNext.git
    cd NotepadNext
    mkdir build && cd build
    cmake ..
    cmake --build .
    

Note: Building from source requires Qt 5.15 or later and a C++17 compatible compiler.

Competitor Comparisons

Notepad++ official repository

Pros of Notepad++

  • Extensive plugin ecosystem with a wide range of additional functionalities
  • Mature project with a large user base and community support
  • More comprehensive documentation and user guides

Cons of Notepad++

  • Older codebase with some legacy components
  • Limited to Windows operating system
  • Slower development cycle for new features and updates

Code Comparison

NotepadNext uses Qt for its GUI, while Notepad++ uses Win32 API. Here's a brief comparison:

NotepadNext (Qt):

#include <QApplication>
#include <QMainWindow>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QMainWindow window;
    window.show();
    return app.exec();
}

Notepad++ (Win32 API):

#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    HWND hwnd = CreateWindowEx(0, "STATIC", "Hello, World!", WS_OVERLAPPEDWINDOW, 100, 100, 300, 200, NULL, NULL, hInstance, NULL);
    ShowWindow(hwnd, nCmdShow);
    UpdateWindow(hwnd);
    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0)) {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return (int)msg.wParam;
}

This comparison highlights the different approaches to GUI development between the two projects.

162,288

Visual Studio Code

Pros of VS Code

  • Extensive ecosystem of extensions and plugins
  • Integrated terminal and debugging capabilities
  • Regular updates and active community support

Cons of VS Code

  • Heavier resource usage, especially for larger projects
  • Steeper learning curve for advanced features
  • Longer startup time compared to lightweight editors

Code Comparison

NotepadNext (C++):

void MainWindow::newFile()
{
    ScintillaNext* scintilla = createNewDocument();
    setCurrentFile(QString());
    scintilla->clearAll();
}

VS Code (TypeScript):

export function createNewFile(uri: vscode.Uri): void {
    const wsedit = new vscode.WorkspaceEdit();
    wsedit.createFile(uri, { ignoreIfExists: true });
    vscode.workspace.applyEdit(wsedit);
}

NotepadNext is a lightweight, Scintilla-based text editor focused on simplicity and performance. It's ideal for quick edits and smaller projects. VS Code, on the other hand, is a full-featured IDE with extensive capabilities, making it suitable for larger projects and diverse programming tasks. While NotepadNext offers a more straightforward interface, VS Code provides a richer development environment at the cost of increased complexity and resource usage.

60,150

:atom: The hackable text editor

Pros of Atom

  • Extensive ecosystem with a large number of packages and themes
  • Built-in Git integration for version control
  • Cross-platform support (Windows, macOS, Linux)

Cons of Atom

  • Slower startup time and higher resource usage
  • Development has been discontinued by GitHub

Code Comparison

Atom (CoffeeScript):

class MyPackage
  activate: (state) ->
    console.log 'My package activated'

  deactivate: ->
    console.log 'My package deactivated'

NotepadNext (C++):

class MyPlugin : public IPlugin
{
public:
    void initialize() override {
        qDebug() << "My plugin initialized";
    }
};

NotepadNext is a lightweight, fast text editor based on Notepad++, while Atom is a more feature-rich, extensible editor built on web technologies. NotepadNext focuses on simplicity and performance, making it suitable for quick edits and large file handling. Atom offers a more customizable environment with its package ecosystem but at the cost of higher resource usage. NotepadNext is actively maintained, whereas Atom's development has been discontinued. The code comparison shows the different approaches: Atom uses CoffeeScript for plugin development, while NotepadNext uses C++ for native performance.

36,047

The official Vim repository

Pros of vim

  • Highly extensible and customizable with a vast ecosystem of plugins
  • Efficient text editing with powerful keyboard shortcuts and modes
  • Lightweight and runs on virtually any platform, including terminal environments

Cons of vim

  • Steep learning curve for beginners
  • Less intuitive graphical interface compared to modern text editors
  • Limited out-of-the-box features without additional configuration

Code Comparison

vim:

:set number
:syntax on
:set autoindent
:set expandtab
:set tabstop=4

NotepadNext:

editor->setLineNumbersVisible(true);
editor->setSyntaxHighlighting(true);
editor->setAutoIndent(true);
editor->setUseTabs(false);
editor->setTabWidth(4);

Summary

vim is a powerful, lightweight text editor with a focus on keyboard-driven efficiency and extensibility. It excels in terminal environments and offers unparalleled customization options. However, it has a steeper learning curve and may be less intuitive for beginners.

NotepadNext, on the other hand, provides a more familiar graphical interface similar to Notepad++, making it more accessible to users transitioning from traditional text editors. It offers a balance between simplicity and advanced features, making it suitable for both casual users and developers.

The code comparison demonstrates the difference in configuration approaches, with vim using command-line settings and NotepadNext utilizing a programmatic API for similar functionality.

81,533

Vim-fork focused on extensibility and usability

Pros of Neovim

  • Highly extensible and customizable through Lua scripting
  • Supports asynchronous plugins and operations for improved performance
  • Offers a wide range of built-in features for advanced text editing

Cons of Neovim

  • Steeper learning curve, especially for users new to modal editing
  • Requires more initial setup and configuration to achieve desired functionality
  • Limited GUI options compared to more traditional text editors

Code Comparison

NotepadNext (C++):

void MainWindow::newFile()
{
    ScintillaNext* document = createDocument();
    setCurrentFile(document, QString());
}

Neovim (Lua):

vim.api.nvim_create_user_command('NewFile', function()
  vim.cmd('enew')
  vim.bo.filetype = ''
end, {})

NotepadNext is a more traditional GUI-based text editor, while Neovim is a highly customizable, terminal-based text editor. NotepadNext offers a familiar interface for users transitioning from Notepad++, whereas Neovim provides advanced features and extensibility for power users and developers. The code comparison shows the difference in approach: NotepadNext uses C++ for its core functionality, while Neovim relies on Lua for scripting and extending its capabilities.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Notepad Next

Build Notepad Next

A cross-platform, reimplementation of Notepad++.

Though the application overall is stable and usable, it should not be considered safe for critically important work.

There are numerous bugs and half working implementations. Pull requests are greatly appreciated.

screenshot

Installation

Packages are available for Windows, Linux, and MacOS.

Below are the supported distribution mechanisms. There may be other ways to download/install the application, but this project will likely not be able to offer any support for those since they are made availble by other individuals.

Windows

Windows packages are available as an installer or a stand-alone zip file on the release page. The installer provides additional components such as an auto-updater and Windows context menu integration. You can easily install it with Winget:

winget install dail8859.NotepadNext

Linux

Linux packages can be obtained by downloading the stand-alone AppImage on the release page or by installing the flatpak by executing:

flatpak install flathub com.github.dail8859.NotepadNext

MacOS

MacOS disk images can be downloaded from the release page.

It can also be installed using brew:

brew tap dail8859/notepadnext
brew install --no-quarantine notepadnext

MacOS Tweaks

By default, MacOS enables font smoothing which causes text to appear quite differently from the Windows version. This can be disabled system-wide using the following command:

defaults -currentHost write -g AppleFontSmoothing -int 0

A restart is required for this to take effect.

Development

Current development is done using QtCreator with the Microsft Visual C++ (msvc) compiler. Qt 6.5 is the prefered Qt version but this can also be built with Qt 5.15. This is also known to build successfully on various Linux distributions and macOS. Other platforms/compilers should be usable with minor modifications.

If you are familiar with building C++ Qt desktop applications with Qt Creator, then this should be as simple as opening src/NotepadNext.pro and build/run the project.

If you are new to building C++ Qt desktop applications, there is a more detailed guide here.

License

This code is released under the GNU General Public License version 3.