Skip to content
Snippets Groups Projects
Commit e3063610 authored by Loïc Correnson's avatar Loïc Correnson
Browse files

[ivette/doc] refactoring readme

parent 1e44aaed
No related branches found
No related tags found
No related merge requests found
## Coding Guidelines
- use `make app` (checked by GitLab-CI)
- per-directory `style.css` for CSS;
- caml-cased file names for typescript modules;
- indentation based on 2 spaces, no tabs;
- caml-case identifiers for exported members;
- no `export default` for libs, individual exports only;
- prefer use of `import * as AbcDef from '<path>/AbcDef'`;
## Makefile Targets
From the `./ivette` sub-directory of Frama-C main directory:
```
$ make app // Builds desktop app
$ make dev // Launch development version with live code editing
$ make doc // Generate development documentation (static)
$ make serve // Serve the documentation (makes it searchable)
```
Once build, the application can be launched from the command line
with `./bin/frama-c-gui`.
The static documentation is available offline at `doc/html/index.html`.
However, searching the documentation does not work
with `file://` protocole, use `make serve` to use it.
## Mirroring to Dome/Electron
**Warning:** not recommanded until all codebase has been moved to TypeScript.
The content of ./src/dome shall be kept in sync with
the public repository for Dome. An experimental support
for automated synchronisation is available with:
- `make dome-pull` for pulling Dome updates into Ivette
- `make dome-push` for pushing local updates into Dome
# Installation
Required package to be installed:
- `yarn` for node and node pakage management;
- `pandoc` for generating the documentation;
# Emacs Configuration
Emacs mode configuration can be setup with Typescript, Web-mode and Tide packages.
You can install them with `M-x package-install`:
```
M-x package-refresh-contents ;; updates your index
M-x package-install web-mode
M-x package-install typescript-mode
M-x package-install tidse
```
For configuring your `.emacs` accordingly,
please look at the `share/typescript-config.el` file.
It setup the Tide package to work with
`typescript-mode` for `*.ts` files (see also `tsfmt.json` config file)
and `web-mode` for `*.tsx` files.
Usefull commands:
```
M-. goto definition
M-, back to previous point
M-x tide-documentation-at-point
M-x tide-error-at-point
```
## Dome Framework Guides
## Ivette
Main entry points:
- [frama-c/server](modules/frama_c_server.html) Frama-C Server interaction (low level)
- [frama-c/states](modules/frama_c_states.html) high-level request management
## Command Line
The following options are recognized by `./bin/frama-c-gui`:
- `--cwd` working directory of Frama-C server
- `--command` path to Frama-C binary
- `--socket` ZeroMQ socket address of the server
The default working directory is the current one.
The default command is the local `bin/frama-c` of source installation.
The default socket is `ipc:///.frama-c.<pid>.io`.
## Dome Guides
- [Dome Framework](guides/dome.md.html)
- [Quick Start](guides/quickstart.md.html)
......@@ -9,54 +27,3 @@
- [Custom Hooks](guides/hooks.md.html)
- [Icon Gallery](guides/icons.md.html)
- [Glossary](guides/glossary.md.html)
## Setup
From the `./ivette` sub-directory of Frama-C main directory:
```
$ make app
```
## Typescript with Emacs
Emacs mode configuration can be setup with Typescript, Web-mode and Tide packages.
You can install them with `M-x package-install`:
```
M-x package-refresh-contents ;; updates your index
M-x package-install web-mode
M-x package-install typescript-mode
M-x package-install tidse
```
For configuring your `.emacs` accordingly,
please look at the `share/typescript-config.el` file.
It setup the Tide package to work with
`typescript-mode` for `*.ts` files (see also `tsfmt.json` config file)
and `web-mode` for `*.tsx` files.
Usefull commands:
```
M-. goto definition
M-, back to previous point
M-x tide-documentation-at-point
M-x tide-error-at-point
```
## Coding Guidelines
- per-directory `style.css` for CSS;
- caml-cased file names for typescript modules;
- indentation based on 2 spaces, no tabs;
- caml-case identifiers for exported members;
- no `export default` for libs, individual exports only;
- prefer use of `import * as AbcDef from '<path>/AbcDef'`;
## Mirroring to Dome/Electron
The content of ./src/dome shall be kept in sync with
the public repository for Dome. An experimental support
for automated synchronisation is available with:
- `make dome-pull` for pulling Dome updates into Ivette
- `make dome-push` for pushing local updates into Dome
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment