Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

📝 Rewrite documentation for denops v6 #11

Merged
merged 4 commits into from
Feb 4, 2024
Merged
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
1 change: 0 additions & 1 deletion .gitattributes

This file was deleted.

4 changes: 2 additions & 2 deletions .github/workflows/mdbook.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#
# To get started with mdBook see: https://rust-lang.github.io/mdBook/index.html
#
name: Deploy mdBook site to Pages
name: Deploy
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Renaming the workflow to "Deploy" simplifies its purpose but consider a more descriptive name for clarity.


on:
# Runs on pushes targeting the default branch
Expand Down Expand Up @@ -37,7 +37,7 @@ jobs:
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf -y | sh
rustup update
cargo install --version ${MDBOOK_VERSION} mdbook
cargo install mdbook-plantuml
cargo install mdbook-alerts
- name: Setup Pages
id: pages
uses: actions/configure-pages@v4
Expand Down
18 changes: 0 additions & 18 deletions .github/workflows/reviewdog.yml

This file was deleted.

34 changes: 16 additions & 18 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,18 @@ name: Test

env:
DENO_VERSION: 1.x
MDBOOK_VERSION: 0.4.36
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Specify exact versions for environment variables to ensure reproducibility and avoid unexpected failures due to version updates.


on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
test:
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using ubuntu-latest is acceptable but consider specifying an exact version for more predictable builds.

steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
Expand All @@ -26,17 +23,18 @@ jobs:
target/
.tools/
key: ${{ runner.os }}-cargo
- uses: denoland/setup-deno@main
- uses: denoland/setup-deno@v1.1.4
with:
deno-version: ${{ env.DENO_VERSION }}
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: Format
run: make fmt-check
- name: Install tools
run: make tools
- name: Generate
- name: Install mdBook
run: |
make gen
git diff --check
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf -y | sh
rustup update
cargo install --version ${MDBOOK_VERSION} mdbook
cargo install mdbook-alerts
Comment on lines +31 to +34
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The installation of mdBook via curl and rustup should include error handling to ensure the build fails gracefully on errors.

+ set -e
  curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf -y | sh
  rustup update
  cargo install --version ${MDBOOK_VERSION} mdbook
  cargo install mdbook-alerts

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf -y | sh
rustup update
cargo install --version ${MDBOOK_VERSION} mdbook
cargo install mdbook-alerts
set -e
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf -y | sh
rustup update
cargo install --version ${MDBOOK_VERSION} mdbook
cargo install mdbook-alerts

- name: Build with mdBook
run: mdbook build
- name: Format
run: deno fmt --check
- name: Misspell
uses: reviewdog/[email protected]
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
/.tools
/book
25 changes: 0 additions & 25 deletions Makefile

This file was deleted.

32 changes: 19 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
# Denops Documentation
# denops-documentation

[![Test](https://github.com/vim-denops/denops-documentation/actions/workflows/test.yml/badge.svg)](https://github.com/vim-denops/denops-documentation/actions/workflows/test.yml)
[![Deploy](https://github.com/vim-denops/denops-documentation/actions/workflows/mdbook.yml/badge.svg)](https://github.com/vim-denops/denops-documentation/actions/workflows/mdbook.yml)
[![Documentation](https://img.shields.io/badge/denops-Documentation-yellow.svg)](https://vim-denops.github.io/denops-documentation/)

This is an official documentation of [denops.vim][denops.vim], an ecosystem of
Vim/Neovim which allows developers to write plugins in [Deno][Deno].
This is an official documentation of [denops.vim], an ecosystem of Vim/Neovim
which allows developers to write plugins in [Deno].

[denops.vim]: https://github.com/vim-denops/denops.vim
[deno]: https://deno.land
Expand All @@ -20,26 +21,31 @@ To contribute, install the latest versions of the followings in your environment
- [Rust](https://www.rust-lang.org/tools/install)
- [Deno](https://deno.land/)

Then, install [mdBook](https://github.com/rust-lang/mdBook) and its plugins in
`.tools` directory by
Then, install [mdBook](https://github.com/rust-lang/mdBook) and its plugins

```
make tools
cargo install mdbook
cargo install mdbook-alerts
```

Once required tools are installed, execute the following command to generate
static files in [`./docs`](./docs) from markdown files in [`./src`](./src).
Once required tools are installed, execute the following command to serve the
book on http://localhost:3000

```
make gen
mdbook serve
```

Note that all markdown files are formatted with
[Deno's code formatter](https://deno.land/manual/tools/formatter) and checked by
CI thus make sure to format codes by the following command
Or build book into `book` directory

```
make fmt
mdbook build
```

Don't forget to format Markdown files with `deno fmt` before sending a pull
request.

```
deno fmt
```

## See also
Expand Down
3 changes: 1 addition & 2 deletions book.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,4 @@ multilingual = false
src = "src"
title = "Denops Documentation"

[preprocessor.plantuml]
plantuml-cmd="http://www.plantuml.com/plantuml"
[preprocessor.alerts]
3 changes: 3 additions & 0 deletions deno.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"exclude": ["theme/**/*", "book/**/*"]
}
25 changes: 15 additions & 10 deletions src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,18 @@
[Introduction](./introduction.md)

- [Install](./install.md)
- [Tutorial](./tutorial.md)
- [Preparing Deno and Denops](./tutorial/preparing-deno-and-denops.md)
- [Developing Your First Plugin](./tutorial/developing-your-first-plugin.md)
- [Vim/Neovim Configuration](./tutorial/vimneovim-configuration.md)
- [Making a Plugin Directory Tree](./tutorial/making-a-directory-tree.md)
- [Adding a Skelton of Denops Plugin](./tutorial/adding-a-skelton-of-denops-plugin.md)
- [Adding an API](./tutorial/adding-an-api.md)
- [Calling Vim/Neovim Features](./tutorial/calling-vimneovim-features.md)
- [Developing More Applicative Plugin](./tutorial/developing-more-applicative-plugin.md)
- [Developing Your Next Plugins](./tutorial/developing-your-next-plugins.md)
- [Getting Started](./getting-started/README.md)
- [Explanation of the Getting started](./getting-started/explanation.md)
- [Tutorial (Hello world)](./tutorial/helloworld/README.md)
- [Creating a minimal Vim plugin](./tutorial/helloworld/creating-a-minimal-vim-plugin.md)
- [Creating a minimal Denops plugin](./tutorial/helloworld/creating-a-minimal-denops-plugin.md)
- [Adding Denops APIs](./tutorial/helloworld/adding-an-api.md)
- [Calling Vim features](./tutorial/helloworld/calling-vim-features.md)
- [Tutorial (Maze)](./tutorial/maze/README.md)
- [Utilizing third-party library](./tutorial/maze/utilizing-third-party-library.md)
- [Outputting content to buffer](./tutorial/maze/outputting-content-to-buffer.md)
- [Adjusting maze size to fit the window](./tutorial/maze/adjusting-maze-size-to-fit-the-window.md)
- [Properly create a virtual buffer](./tutorial/maze/properly-create-a-virtual-buffer.md)
- [Properly configured the buffer](./tutorial/maze/properly-configured-the-buffer.md)
- [Reduce the number of RPC calls](./tutorial/maze/reduce-the-number-of-rpc-calls.md)
- [FAQ](./faq.md)
24 changes: 24 additions & 0 deletions src/faq.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# FAQ

## How to Check Denops Startup Time

To check the startup time of Denops or Denops plugins, utilize
[denops-startup-recorder]. This plugin visualizes the timing of events related
to Denops and Denops plugin startup.

[denops-startup-recorder]: https://github.com/vim-denops/denops-startup-recorder.vim

It shows the result in echo area like:

![](./img/faq-1.png)

## How to Check Denops Performance

To assess Denops performance, employ [denops-benchmark]. This plugin measures
the number of operations or characters that can be processed in milliseconds.

[denops-benchmark]: https://github.com/vim-denops/denops-benchmark.vim

It shows the result in a buffer like:

![](./img/faq-2.png)
68 changes: 68 additions & 0 deletions src/getting-started/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Getting Started

[Denops] ([/ˈdiːnoʊps/](http://ipa-reader.xyz/?text=%CB%88di%CB%90no%CA%8Aps),
pronounced `dee-nops`) is an ecosystem for [Vim] / [Neovim] that empowers
developers to write plugins in [TypeScript] / [JavaScript] powered by [Deno].

Let's start by creating a simple plugin to learn how to develop Denops plugins.

## Create a Plugin

Create a directory named `denops-getting-started` in your home directory and a
file named `main.ts` within it, under `denops/denops-getting-started/`:

```
$HOME
└── denops-getting-started
└── denops
└── denops-getting-started
└── main.ts
```

Next, write the following TypeScript code in `main.ts`:

```typescript
import type { Denops } from "https://deno.land/x/[email protected]/mod.ts";

export function main(denops: Denops): void {
denops.dispatcher = {
async hello() {
await denops.cmd(`echo "Hello, Denops!"`);
},
};
}
```

## Activate the Plugin

Add the following line to your Vim or Neovim configuration file (e.g.,
`~/.vimrc` or `~/.config/nvim/init.vim`):

```vim
set runtimepath+=~/denops-getting-started
```

Or Neovim Lua configuration file (e.g., `~/.config/nvim/init.lua`):

```lua
vim.opt.runtimepath:append("~/denops-getting-started")
```

## Try the Plugin

Restart Vim/Neovim and execute the following command:

```vim
:call denops#request('denops-getting-started', 'hello', [])
```

You should see "Hello, Denops!" displayed on the screen like:

![](./img/README-01.png)

[Denops]: https://github.com/vim-denops/denops.vim
[Vim]: https://www.vim.org/
[Neovim]: https://neovim.io/
[TypeScript]: https://www.typescriptlang.org/
[JavaScript]: https://developer.mozilla.org/en-US/docs/Web/JavaScript
[Deno]: https://deno.land/
Loading