Giter VIP home page Giter VIP logo

renpy-text-editor's Introduction

renpy-text-editor

Renpy Text Editor - A dedicated text editor and IDE for the Ren'Py Engine.

Discord Server

Installation instructions

In order to use this software, you must have the following installed on your computer :

  • A python 3.6.5+ installation
  • pip
  • Tcl/Tk 8.5+ (should be included in any python release)

Run the following command in a terminal

pip install -r requirements.txt --upgrade

Then, run the renpytexteditor.py file in any python 3.6.5+ interpretor.

python3 -m renpytexteditor.py

Currently implemented features

  • Editor View with Line numbering
  • Theme Support
  • Snippets Support
  • Duplicate line/ Selected Code Block
  • Fully Portable
  • Project Viewer, with Picture, and audio player.
  • Support for MD, JSON, YAML, XML markdown
  • Closeable tabs for multiple files open at the same time.
  • Layeredimage builder and preview
  • Syntax highlighting
  • Main window view, with 2 resizable frames for text editing.
  • opening a file from the project manager
  • Sort the project manager by item type (folder/file)
  • Save files
  • Undo/Redo
  • Formatting text (upper, lower, capitalize etc)
  • Comparing between two files
  • Toolbar
  • Snippets support
  • Translation support
  • GUI for adding in snippets
  • Collapsing blocks of code
    • collapsing with "#region region-name" and "#endregion" comments
    • collapsing labels, screens, python, init, statements and functions
  • Reassign Keybindings how you see fit, including support for F13-F24 keys.
  • GUI for setting up your preferences
  • Indent/Deindent code with tab/shift+tab
  • Full-featured renpy debugger (courtesy of @Enerccio) including breakpoints, pause, line-by-line execution.
  • Automatic Indent

Planned Features

  • Tab Autocompletion
  • Variable viewer
  • Renpy Console (run renpy code headless, jump to labels to test, call screens etc)
  • Automatic Renpy markdown matching, with automatic detection of custom text tags ({b}, {u} etc tags)
  • Autocompletion of variables in text
  • Plugin support
  • Built-in linting line by line with PEP8 support, and Renpy's linting system
    • pycodestyle linting
    • renpy linting
  • Git integration
  • Save file viewer
  • Screen builder and preview
  • Visual scripting for Renpy Visual Novels (VSVN)
  • Search, Replace, and Search in all files with regular expression support.
  • Built-in inline boolean expression simplifier
  • Boolean expression builder with variable names, and a truth table for those really complex conditions.
  • Native support for .editorconfig files

LayeredImage Builder Feature

  • Support for any number of layers with easy photoshop-like layer window
  • Support for basic transforms:
    • rotate
    • zoom
    • xoffset, yoffset
    • crop
  • View a layered image from the builder

Screen Builder Feature

  • Preview the resulting screen
  • Supported screen displayables :
    • imagebutton
    • textbutton
    • add
    • use
  • support for conditions
  • in-depth actions builder with support for any screen action && User-defined actions
  • output in a new screen.rpy file, with proper formatting.

Available Keybindings

  • Duplicate line/selected block : Ctrl+D
  • Run selected file in the console : F5
  • Quit : Alt+F4
  • Close current file : Ctrl+W
  • Comment/Uncomment selected block/line : Ctrl+Q
  • Search : Ctrl+F
  • Search & Replace : Ctrl+H
  • Search & replace in all files : Ctrl+Shift+F
  • Copy : Ctrl+C
  • Paste : Ctrl+V
  • Cut : Ctrl+X
  • Save : Ctrl+S
  • Save As : Ctrl+Shift+S
  • To lowercase : Ctrl+U
  • To UPPERCASE : Ctrl+Shift+U
  • To Capitalized case : Ctrl+Alt+U
  • Invert casing : Ctrl+Shift+Alt+U
  • Undo : Ctrl+Z
  • Redo : Ctrl+Y

renpy-text-editor'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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

renpy-text-editor's Issues

RenPy lexer improvements

  • Lexing screen language
  • Lexing screen language attributes
  • Lexing Screen Actions
  • Lexing the $ sign for inline python
  • Adding new Renpy token type
  • lexing transform/atl language
  • lexing renpy keywords
  • lexing style attributes
  • lexing renpy built-in functions
    • improve the lexing on that

Doesn't open folder

I managed to make it run but when I open the game folder that contains the rpy files, nothing appears in the list.

That's too bad, with VSCode refusing to set itself up and Atom crashing, i was really needing a dedicated editor for renpy... :/

Cannot run this app on Linux Mint

I try to run this on Linux Mint 19.3 x64 with python 3.6.9
I made:
pip3 install -r requirements.txt --upgrade

But when I try to run:
python3. -m renpytexteditor.py

I get this:

Traceback (most recent call last):
  File "/usr/lib/python3.6/runpy.py", line 183, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/usr/lib/python3.6/runpy.py", line 109, in _get_module_details
    __import__(pkg_name)
  File "/home/jeremi360/Apps/renpy-text-editor-0.95b/renpytexteditor.py", line 1, in <module>
    from RTE.views.main import RenpyTextEditorGUI
  File "/home/jeremi360/Apps/renpy-text-editor-0.95b/RTE/views/main.py", line 3, in <module>
    from .editor_window import EditorFrame
  File "/home/jeremi360/Apps/renpy-text-editor-0.95b/RTE/views/editor_window.py", line 5, in <module>
    from RTE.config import config
  File "/home/jeremi360/Apps/renpy-text-editor-0.95b/RTE/config.py", line 84, in <module>
    config = Config()
  File "/home/jeremi360/Apps/renpy-text-editor-0.95b/RTE/config.py", line 12, in __init__
    data = json.load(conf)
  File "/usr/lib/python3.6/json/__init__.py", line 299, in load
    parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
  File "/usr/lib/python3.6/json/__init__.py", line 354, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.6/json/decoder.py", line 342, in decode
    raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 13 column 6 (char 312)

How am I supposed to use this editor?

I tried the latest release version, but it just gives me a "Failed to execute script renpytexteditor" message. I also tried running the source code directly (latest commit), but after opening my project folder, the editor just does nothing.

Go to definition

Open the file a function, label, or screen has been defined in.

Saving/loading project metadata

  • Save/load project metadata to save on startup resource consumption
    • labels
    • screens
    • class definitions
    • function definitions
    • variables definitions

Comment/Uncomment blocks of code

  • Language check for comment syntax
  • Keybinding (Ctrl+Q by default)
  • Menu Option (Edit menu)
  • Format with comment token, space, then content
  • support for selecting block/line of code

Git Integration

Create Git Controller to execute thefollowing commands :

  • Stage for commit, by selecting what to stage. Default *
  • Commit
  • Push
  • Pull
  • show changes in line numbers view
    • Red for deleted
    • Blue for modified
    • Green for added
  • integrate git diff color scheme to theme

Use pyglet for audio/video preview

  • Switch to using pyglet for cross platform audio/video playback/preview
  • Remove mp3play library dependancy
  • Get size of file. Sub 3 MB files shouldn't be streamed, but loaded fully into memory before playback
  • Create a video player with a tkinter Canvas. Use pyglet's API to seek the next frame and synchronize with the video's framerate using the time library and the clock() function

Automatic indent

Automatically indent the text on a block start.

  • Add indentation on block start and return key pressed

Collapsing blocks of code

  • Write a code block detector
  • Have the block detector and GUI sync up in real time
  • display button for child blocks
  • hide button for root block
  • Make collapse button change when clicking it to display the state of the block (hidden/shown)

Debugger Functionality

  • Add Breakpoint by right-clicking on a line
  • Add command parsing
  • Automatically attach debugee to renpy game

Search functionnality

  • Search window UI
  • Search in current file
  • Search and Replace in current file
  • Search and replace in all files of the current project
  • Regular Expression (Regex) support for searching/replacing
  • Toggle for strong casing/weak casing search
  • Loop around the file(s)
  • Search in all open files

Resizing window support

  • make widgets resize with the window size.
  • fix invalid geometry being written in the config.
  • fix ghost scrollbar

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.