Giter Site home page Giter Site logo

tomkrauss / pks-edit Goto Github PK

View Code? Open in Web Editor NEW
8.0 8.0 2.0 19.02 MB

A code editor originally implemented for Atari ST - now available as Windows 64 Bit application

License: Mozilla Public License 2.0

C 95.46% Yacc 1.85% Lex 0.55% C++ 1.83% Inno Setup 0.32%
code-editor editor markdown open-source programming text-editor windows wysiwyg

pks-edit's People

Contributors

tomkrauss avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

pks-edit's Issues

Vertical Scrollbar not correctly updated in Markdown Wysiwyg Mode

The scrollbar thumb does not correctly reflect the visible range of a markdown document displayed in Wysiwyg mode. In some cases it even completely disappears, even when only a sub-range of the whole document is viewed.

Steps to reproduce the behavior:

  1. Open a long markdown document (bigger than 1 page long)
  2. Goto Wysiwyg mode
  3. Scroll up and down
  4. The scrollbar thumb is not correctly updated.

Expected behavior
The scrollbar should update correctly.

Provide option to reuse running PKS-Edit instance

PKS-Edit may be started using DDE to ensure, that multiple request to open files are routed to the same editing instance of PKS-Edit. This requires however the registration of an explicit open command for a file in the Windows registry.

In order to allow for re-using PKS-Edit to open multiple files independent of a specific open command, we should provide an option to have PKS-Edit detect, that it is running already passing on the open request to the running PKS-Edit instance.

Support opening multiple Files at once

We should support passing a file name containing DOS wildcards as command line argument and open all matching files.

E.g. use the following to open all log files.

> pksedit *.log

We should also support patterns like pksedit myfolder\*.c to open all .c-files in the folder myfolder.

In addition we should support multi-selection in the standard open file dialog to open multiple files at once.

Provide directory selection in open file based on open editors

To easy focussed editing of files, we should on "Open File..."

  • display the directory of the currently active editors file as the default directory in the file selector
  • offer the directories of all open files as alternative directories (recent directories)

This will eliminate the need to store recent pathes in the history file

Support Searching Text in Hex Display Mode

When a file is viewed / edited in hex mode, the search dialog can be opened, but matches found are not correctly marked and displayed in the editor.

We should support highlighting text correctly also in hex mode to have search / find work as expected.

Display Differences in Changed Lines in Comparison Mode

The compare files functions of PKS-Edit displays all differences by highlighting added, deleted and modified lines in a side by side display. We should improve the highlighting by showing the textual differences in changed lines as well.

Support Code Folding

Currently PKS-Edit supports most features expected from a modern code editor. One feature, which is missing (or only hidden / supported in a very flaky way) is the ability to hide portions of text aka code folding.

We should allow to define folding patterns in the grammar defining foldable areas which can be temporarily hidden to provide a quick overview over e.g. the outline of a document.

Alternatively or additionally we could support an outline view for documents showing e.g. the list of functions / chapters of a code / text document.

Evaluate logical Expressions in PKSMacroC using short-circuit Evaluation

Expressions in PKSMacroC such as (a == 'x' && b == 'y') will always evaluate each sub-expression. This is in particular impractical when one tries to test an assumption in the 1st sub-expression necessary to evaluate the second expression such as in the following example:

if (size(array) > 10 && array[10] == 'x')...

Executing this code in PKSMacroC will cause a run-time error for arrays of size less then 10. To avoid the run-time error one must rearrange the expression to:

if (size(array) > 10) {
  if (array[10] == 'x')...

To make implementing PKSMacroC code easier and to have PKSMacroC be more compatible to C- / Java-like languages we should support short-circuit evaluation aka McCarthy evaluation.

Support Definition of all Bindings to UI Action Triggers using JSON Format Configuration Files

We should allow to define all UI interaction elements / events which can be used to trigger an action in PKS-Edit using configuration files:

  • the menubar
  • context menus
  • keyboard bindings
  • mouse clicks
  • toolbar buttons

Action bindings should provide an optional action context in which they are available (e.g. an action may be only available in markup wysiwyg mode).

This will allow users to fully customize PKS-Edit to the desired behavior.

The corresponding configuration files should use JSON format in compliance to other configuration options. A default configuration (maybe multiple to mimik different popular editors and IDEs) should be provided, which can be extended / modified by users.

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.