All Projects → BalazsJako → Imguicolortextedit

BalazsJako / Imguicolortextedit

Licence: mit
Colorizing text editor for ImGui

Programming Languages

c
50402 projects - #5 most used programming language
lua
6591 projects
cplusplus
227 projects

Projects that are alternatives of or similar to Imguicolortextedit

Kibi
A text editor in ≤1024 lines of code, written in Rust
Stars: ✭ 522 (-32.38%)
Mutual labels:  text-editor, syntax-highlighting, utf-8
Zep
Zep - An embeddable editor, with optional support for using vim keystrokes.
Stars: ✭ 477 (-38.21%)
Mutual labels:  text-editor, syntax-highlighting, imgui
Kiro Editor
A terminal UTF-8 text editor written in Rust 📝🦀
Stars: ✭ 457 (-40.8%)
Mutual labels:  text-editor, utf-8
Nord
An arctic, north-bluish color palette.
Stars: ✭ 4,816 (+523.83%)
Mutual labels:  syntax-highlighting, color-palette
Hlsl2glslfork
HLSL to GLSL language translator based on ATI's HLSL2GLSL. Used in Unity.
Stars: ✭ 488 (-36.79%)
Mutual labels:  glsl, hlsl
Shadergen
Proof-of-concept library for generating HLSL, GLSL, and Metal shader code from C#,
Stars: ✭ 395 (-48.83%)
Mutual labels:  glsl, hlsl
Replxx
A readline and libedit replacement that supports UTF-8, syntax highlighting, hints and Windows and is BSD licensed.
Stars: ✭ 446 (-42.23%)
Mutual labels:  syntax-highlighting, utf-8
Pmtech
Lightweight, multi-platform, data-oriented game engine.
Stars: ✭ 478 (-38.08%)
Mutual labels:  glsl, hlsl
Glslcc
GLSL cross-compiler tool (GLSL->HLSL, MSL, GLES2, GLES3, GLSLv3), using SPIRV-cross and glslang
Stars: ✭ 320 (-58.55%)
Mutual labels:  glsl, hlsl
Gpu Gems Book Source Code
💿 CD Content ( Source Code ) Collection of Book <GPU Gems > 1~ 3 | 《GPU精粹》 1~ 3 随书CD(源代码)珍藏
Stars: ✭ 567 (-26.55%)
Mutual labels:  glsl, hlsl
Glchaos.p
3D GPUs Strange Attractors and Hypercomplex Fractals explorer - up to 256 Million particles in RealTime
Stars: ✭ 590 (-23.58%)
Mutual labels:  glsl, imgui
Rainbow csv
🌈Rainbow CSV - Vim plugin: Highlight columns in CSV and TSV files and run queries in SQL-like language
Stars: ✭ 337 (-56.35%)
Mutual labels:  sql, syntax-highlighting
Xshadercompiler
Shader cross compiler to translate HLSL (Shader Model 4 and 5) to GLSL
Stars: ✭ 327 (-57.64%)
Mutual labels:  glsl, hlsl
Primrose
A syntax-highlighting text editors that renders to an HTML5 Canvas
Stars: ✭ 451 (-41.58%)
Mutual labels:  text-editor, syntax-highlighting
Shaderdebugger
[DEPRECATED] C++ library for debugging HLSL & GLSL shaders
Stars: ✭ 323 (-58.16%)
Mutual labels:  glsl, hlsl
Slang
Making it easier to work with shaders
Stars: ✭ 627 (-18.78%)
Mutual labels:  glsl, hlsl
VulkanRenderer
Personal repo for learning the vulkan graphics api
Stars: ✭ 42 (-94.56%)
Mutual labels:  imgui, glsl
That editor
*That* editor.
Stars: ✭ 262 (-66.06%)
Mutual labels:  text-editor, syntax-highlighting
Cudatext
Cross-platform text editor, written in Lazarus
Stars: ✭ 498 (-35.49%)
Mutual labels:  text-editor, syntax-highlighting
Ouzel
C++ game engine for Windows, macOS, Linux, iOS, tvOS, Android, and web browsers
Stars: ✭ 607 (-21.37%)
Mutual labels:  glsl, hlsl

ImGuiColorTextEdit

Syntax highlighting text editor for ImGui

Screenshot

Demo project: https://github.com/BalazsJako/ColorTextEditorDemo

This started as my attempt to write a relatively simple widget which provides text editing functionality with syntax highlighting. Now there are other contributors who provide valuable additions.

While it relies on Omar Cornut's https://github.com/ocornut/imgui, it does not follow the "pure" one widget - one function approach. Since the editor has to maintain a relatively complex and large internal state, it did not seem to be practical to try and enforce fully immediate mode. It stores its internal state in an object instance which is reused across frames.

The code is (still) work in progress, please report if you find any issues.

Main features

  • approximates typical code editor look and feel (essential mouse/keyboard commands work - I mean, the commands I normally use :))
  • undo/redo
  • UTF-8 support
  • works with both fixed and variable-width fonts
  • extensible syntax highlighting for multiple languages
  • identifier declarations: a small piece of description can be associated with an identifier. The editor displays it in a tooltip when the mouse cursor is hovered over the identifier
  • error markers: the user can specify a list of error messages together the line of occurence, the editor will highligh the lines with red backround and display error message in a tooltip when the mouse cursor is hovered over the line
  • large files: there is no explicit limit set on file size or number of lines (below 2GB, performance is not affected when large files are loaded (except syntax coloring, see below)
  • color palette support: you can switch between different color palettes, or even define your own
  • whitespace indicators (TAB, space)

Known issues

  • syntax highligthing of most languages - except C/C++ - is based on std::regex, which is diasppointingly slow. Because of that, the highlighting process is amortized between multiple frames. C/C++ has a hand-written tokenizer which is much faster.

Please post your screenshots if you find this little piece of software useful. :)

Contribute

If you want to contribute, please refer to CONTRIBUTE file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].