Skip to content
Merged

Dev #89

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ jobs:
# we specify bash to get pipefail; it guards against the `curl` command
# failing. otherwise `sh` won't catch that `curl` returned non-0
shell: bash
run: "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v0.30.0/cargo-dist-installer.sh | sh"
run: "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v0.30.2/cargo-dist-installer.sh | sh"
- name: Cache dist
uses: actions/upload-artifact@v4
with:
Expand Down Expand Up @@ -234,8 +234,8 @@ jobs:
- plan
- build-local-artifacts
- build-global-artifacts
# Only run if we're "publishing", and only if local and global didn't fail (skipped is fine)
if: ${{ always() && needs.plan.outputs.publishing == 'true' && (needs.build-global-artifacts.result == 'skipped' || needs.build-global-artifacts.result == 'success') && (needs.build-local-artifacts.result == 'skipped' || needs.build-local-artifacts.result == 'success') }}
# Only run if we're "publishing", and only if plan, local and global didn't fail (skipped is fine)
if: ${{ always() && needs.plan.result == 'success' && needs.plan.outputs.publishing == 'true' && (needs.build-global-artifacts.result == 'skipped' || needs.build-global-artifacts.result == 'success') && (needs.build-local-artifacts.result == 'skipped' || needs.build-local-artifacts.result == 'success') }}
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
runs-on: "ubuntu-22.04"
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,14 @@ Changelog

* No changes.

Version 0.1.40 -- 2025-Nov-11
-----------------------------

* File watcher now accepts new files from the Client.
* Improved translation from HTML to Markdown.
* Build correct binary for Mac M1.
* Add CodeMirror support for SQL and YAML.

Version 0.1.39 -- 2025-Oct-23
-----------------------------

Expand Down
161 changes: 80 additions & 81 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Welcome to the CodeChat Editor
==============================
================================================================================

The CodeChat Editor is a GUI-based programmer's word processor /
[Jupyter](https://jupyter.org/) for software developers. This document describes
Expand All @@ -8,59 +8,58 @@ provides strategies for effectively employing the CodeChat Editor to improve the
software development process.

Full manual
-----------
--------------------------------------------------------------------------------

Read the [manual rendered using the CodeChat
Editor](https://codechat-editor.onrender.com/fw/fsb/opt/render/project/src/README.md),
Read the
[manual rendered using the CodeChat Editor](https://codechat-editor.onrender.com/fw/fsb/opt/render/project/src/README.md),
since this documentation doesn't correctly render on GitHub.

Installation
------------
--------------------------------------------------------------------------------

Install the [CodeChat Editor extension for Visual Studio
code](extensions/VSCode/README.md). For developers, see [building from
source](docs/design.md).
Install the
[CodeChat Editor extension for Visual Studio code](extensions/VSCode/README.md).
For developers, see [building from source](docs/design.md).

Structure
---------
--------------------------------------------------------------------------------

The CodeChat Editor divides source code into code blocks and documentation (doc)
blocks. These blocks are separated by newlines; the image below shows the [style
guide](docs/style_guide.cpp) on the left in the Visual Studio Code (VSCode) text
editor, while the right pane shows the same text from style guide in the
CodeChat Editor (using the VSCode extension). Specifically, this screenshot
shows:

* <span style="font-size: 20pt;">❶</span>: a doc block. Doc blocks must have
one space after the comment delimiter.
* <span style="font-size: 20pt;">❷</span>: a code block. Comments on the same
line as code are not interpreted as doc blocks.
* <span style="font-size: 20pt;">❸</span>: varying indents before a doc block.
* <span style="font-size: 20pt;">❹</span>: [Markdown](https://commonmark.org/)
in a doc block; see a [brief overview of
Markdown](https://commonmark.org/help/).

![Image showing code blocks and doc blocks in Visual Studio
Code](docs/code-blocks-doc-blocks.png)
blocks. These blocks are separated by newlines; the image below shows the
[style guide](docs/style_guide.cpp) on the left in the Visual Studio Code
(VSCode) text editor, while the right pane shows the same text from style guide
in the CodeChat Editor (using the VSCode extension). Specifically, this
screenshot shows:

* <span style="font-size: 20pt;">❶</span>: a doc block. Doc blocks must have one
space after the comment delimiter.
* <span style="font-size: 20pt;">❷</span>: a code block. Comments on the same
line as code are not interpreted as doc blocks.
* <span style="font-size: 20pt;">❸</span>: varying indents before a doc block.
* <span style="font-size: 20pt;">❹</span>: [Markdown](https://commonmark.org/)
in a doc block; see a
[brief overview of Markdown](https://commonmark.org/help/).

![Image showing code blocks and doc blocks in Visual Studio Code](docs/code-blocks-doc-blocks.png)

See the [style guide](docs/style_guide.cpp) for more examples.

Editing
-------
--------------------------------------------------------------------------------

Edits may be made either in the IDE hosting the CodeChat Editor, or within the
CodeChat Editor window itself. Edits made in one place are transferred to the
other after a short delay.

Navigation
----------
--------------------------------------------------------------------------------

Switching documents in the IDE likewise switches the document shown in the
CodeChat Editor. Likewise, following hyperlinks in the CodeChat Editor to a
local file loads that file in the IDE, as well as showing it in the Editor.

References to other files
-------------------------
--------------------------------------------------------------------------------

The CodeChat Editor supports hyperlinks to any recognized file type; to refer to
another source file, simply insert a hyperlink to it. For example,
Expand All @@ -83,7 +82,7 @@ docs/
```

Images
------
--------------------------------------------------------------------------------

Likewise, the path to local images is relative to the current file's location
(see the preceding diagram for the location of `monitor.png`). For example
Expand All @@ -98,18 +97,18 @@ mess -- the image data is embedded directly in the source file. Avoid this;
instead, place images in a separate file, then reference them as shown above.

Projects
--------
--------------------------------------------------------------------------------

The CodeChat Editor can either display a single file, or a project. In a
project, the table of contents is displayed on the left, while a file within the
project is displayed on the right. To create a project, simply place a file
named `toc.md` at the root of your project [\[2\]](#notes); its contents define
the table of contents. See the [new project
template](https://github.com/bjones1/CodeChat_Editor/tree/main/new-project-template)
the table of contents. See the
[new project template](https://github.com/bjones1/CodeChat_Editor/tree/main/new-project-template)
for a simple example.

Mathematics
-----------
--------------------------------------------------------------------------------

The CodeChat Editor uses [MathJax](https://www.mathjax.org/) to support typeset
mathematics. Place the delimiters `$` or `\\(` and `\\)` immediately before and
Expand Down Expand Up @@ -141,20 +140,20 @@ following characters should be escaped: `*`, `_`, `\`, `[`, `]`, `<`.
| `$a \; b$` | $a \; b$ | `$a \\; b$` | $a \\; b$ |

Diagrams
--------
--------------------------------------------------------------------------------

### Graphviz

The CodeChat Editor contains rudimentary support for diagrams created by
[Graphviz](https://graphviz.org/). For example,

| Source | Rendered |
| ----------------------------------------------------- | --------------------------------------------------- |
| `<graphviz-graph>digraph { A -> B }</graphviz-graph>` | <graphviz-graph>digraph { A -> B }</graphviz-graph> |
| Source | Rendered |
| ----------------------------------------------------- | ------------------------------------------------------ |
| `<graphviz-graph>digraph { A -> B }</graphviz-graph>` | <graphviz-graph>digraph { A -&gt; B }</graphviz-graph> |

To edit these diagrams, use an [HTML entity
encoder/decoder](https://mothereff.in/html-entities) and a Graphviz editor such
as [Edotor](https://edotor.net/).
To edit these diagrams, use an
[HTML entity encoder/decoder](https://mothereff.in/html-entities) and a Graphviz
editor such as [Edotor](https://edotor.net/).

### Mermaid

Expand All @@ -165,9 +164,9 @@ The CodeChat Editor contains rudimentary support for diagrams created by
| --------------------------------------------- | ---------------------------------------------- |
| `<wc-mermaid>graph TD; A --> B;</wc-mermaid>` | <wc-mermaid>graph TD; A --&gt; B;</wc-mermaid> |

To edit these diagrams, use an [HTML entity
encoder/decoder](https://mothereff.in/html-entities) and the [Mermaid live
editor](https://mermaid.live/).
To edit these diagrams, use an
[HTML entity encoder/decoder](https://mothereff.in/html-entities) and the
[Mermaid live editor](https://mermaid.live/).

### PlantUML

Expand All @@ -178,43 +177,43 @@ diagram directly to an SVG; for example,
| ------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| `![Sample PlantUML diagram](https://www.plantuml.com/plantuml/svg/ SoWkIImgAStDuNBAJrBGjLDmpCbCJbMmKiX8pSd9vt98pKi1IW80)` | ![Sample PlantUML diagram](https://www.plantuml.com/plantuml/svg/SoWkIImgAStDuNBAJrBGjLDmpCbCJbMmKiX8pSd9vt98pKi1IW80) |

To edit these diagrams, paste the URL into the [PlantUML web
server](https://www.plantuml.com/plantuml/uml), click Decode URL, edit, then
copy and paste the SVG URL back to this file.
To edit these diagrams, paste the URL into the
[PlantUML web server](https://www.plantuml.com/plantuml/uml), click Decode URL,
edit, then copy and paste the SVG URL back to this file.

<a id="supported-languages"></a>Supported languages
---------------------------------------------------

* C/C++
* C#
* CSS
* Go
* HTML
* Java/Kotlin
* JavaScript/ECMAScript and TypeScript
* JSON with comments ([JSON5](https://json5.org/))
* Markdown
* MATLAB
* Python
* Rust
* Shell scripts (`.sh`)
* SQL
* Swift
* TOML
* VHDL
* Verilog/SystemVerilog
* Vlang
* YAML
--------------------------------------------------------------------------------

* C/C++
* C#
* CSS
* Go
* HTML
* Java/Kotlin
* JavaScript/ECMAScript and TypeScript
* JSON with comments ([JSON5](https://json5.org/))
* Markdown
* MATLAB
* Python
* Rust
* Shell scripts (`.sh`)
* SQL
* Swift
* TOML
* VHDL
* Verilog/SystemVerilog
* Vlang
* YAML

Issues and feature requests
---------------------------
--------------------------------------------------------------------------------

Please report issues and provide suggestions for improvement using the [Github
page for this project](https://github.com/bjones1/CodeChat_Editor).
Please report issues and provide suggestions for improvement using the
[Github page for this project](https://github.com/bjones1/CodeChat_Editor).
Contributions to the code are welcome and encouraged!

License
-------
--------------------------------------------------------------------------------

Copyright (C) 2025 Bryan A. Jones.

Expand All @@ -235,11 +234,11 @@ License along with the CodeChat Editor. If not, see
[https://www.gnu.org/licenses/](https://www.gnu.org/licenses/).

<a id="notes"></a>Notes
-----------------------

1. The image used comes from [Monitor icons created by prettycons -
Flaticon](https://www.flaticon.com/free-icons/monitor "monitor icons").
2. Note that the filename for the table of contents is lowercase; while the
acronym is TOC, requiring upper-case naming can cause confusion when moving
files between case-insensitive filesystems (Windows) and case-sensitive
filesystems (Linux/OS X).
--------------------------------------------------------------------------------

1. The image used comes from
[Monitor icons created by prettycons - Flaticon](https://www.flaticon.com/free-icons/monitor "monitor icons").
2. Note that the filename for the table of contents is lowercase; while the
acronym is TOC, requiring upper-case naming can cause confusion when moving
files between case-insensitive filesystems (Windows) and case-sensitive
filesystems (Linux/OS X).
Loading
Loading