Giter Club home page Giter Club logo

tegilbor's Introduction

#Tegilbor

I wrote this program so that I could type quickly with shorthand. For example, typing "the program" can be done by typing ctrl-f space ctrl-/ ctrl-? (capitalization is important). In theory, this means that I will be able to type much more quickly, hopefully at talking speed.

This program adds speed typing abilities to my other text editor, located at https://github.com/asinck/amdiron.

###Explanation of the Program:

This program has the standard capabilities; that is, it can open, edit, and save files, and have multiple files open at the same time. It also has the following:

####Tabs: The tabs show the file that each tab holds. Clicking on a tab will show that file. If a file is saved, the tab will be white. If the file has been edited since the last save, the tab will be gray. Note that right now, moving the cursor in the file turns the tab gray, and middle click pasting in the file doesn't.

####Text Entry Box: There is one main entry box, which will be focused when the program is started. It is what you type in, and what has all the bindings. It will be directly above the text box, to the right.

####Looking up Bindings: On the right is a sidebar. This sidebar contains both a lookup field and a quick definition field. The lookup field allows the user to look up bindings that have the search string in them. The user can jump directly to this field by hitting ctrl-enter.

####QuickDefs: These allow the user to define a expansion string for a letter. To activate expansion, the user types a question mark followed by the letter. For example, if the user knows that they're going to type "github" a lot, they can define g as "github", and when they're typing, if they type "?g" it will be replaced with "github".

Quickdefs can be defined as pretty much anything, so they can used for word fragments, whole words, phrases, paragraphs, etc.

To add a quickdef (for the current session only), enter the letter and word that the letter stands for, and either hit enter or click the little [+] next to the entry. The quickdefs can also be imported/exported with the buttons under the list, for saving them between sessions. To remove a quickdef, select it from the list and click the [X] under the list.

The user can jump directly to the key definition entry field with shift-enter.

###Installation Notes: This program uses the Tkinter GUI library. If it is not installed, you can't use the program. If you aren't sure, you can try to run the program, and it will let you know.

###Bugs:

  • Middle click pasting doesn't affect the "saved" status.
  • Moving around in the document with the keyboard causes the document to be considered unsaved.
  • The auto-scroll to cursor may not always work when a binding is looked up.
  • The length sorting for the lookup does not work properly.
  • The line/col indication is not correct (except by coincidence) if the user clicks in the text field.
  • The amount of text backspace deletes can be incorrect if the user moves the cursor and expects a single letter to be deleted when they hit backspace.
  • This program doesn't necessarily play well with other programs editing the same file at the same time. This program can refresh a file, but it won't do any sort of checks to warn against editing/saving a file modified outside of it.
  • Trailing whitespace is an issue (ie, doesn't necessarily read properly) when the program reads a file. It appends an extra newline to the displayed contents, which will be saved if the file is saved.

###Upcoming enhancements: #####File handling

  • Allow the program to generate timestamps to append to the filename.

#####Text area:

  • Remember indentation.
  • Line numbers.

#####Quickdefs:

  • Automatically generated quickdefs.

#####Other:

  • Allow the user to close tabs.
  • Fix the readme to not switch between first, third, and second person.
  • Allow typing of any character in the text entry box, and saving of files with UTF-8 characters.
  • Rewrite the whole program to clean up the code.

###Notes:

The bindings for the keys may change occasionally, as I see fit.

Hitting ESC from anywhere in the program saves the file.

Tegilbor is elvish for writer. See http://elf.namegeneratorfun.com/ .

Some bindings don't actually work; possibly due either to the OS not allowing it, or the keyboard not being able to handle it. This is not a bug that I can fix.

tegilbor's People

Contributors

asinck avatar

Watchers

 avatar

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.