laburnum 1.17.3

An LSP framework for building language servers and compilers, powered by an incremental query tree with content-addressed storage, task-based dataflow, and parallel queries.
// Copyright Two Neutron Stars Incorporated and contributors
// SPDX-License-Identifier: BlueOak-1.0.0

//! Guides and conceptual documentation for building language frontends and
//! language servers with laburnum.
//!
//! These pages are the rendered Markdown sources from the repository's `docs/`
//! tree, compiled into the API documentation so they are browsable on
//! <https://docs.rs/laburnum> alongside the API reference.
//!
//! This module exists only for documentation (`#[cfg(doc)]`); it generates no
//! code in a normal build.
//!
//! ## Where to start
//!
//! - New to laburnum? Read [getting started](crate::docs::getting_started), then
//!   the [concepts](crate::docs::concepts) pages.
//! - Building a language frontend? See the lexer / CST / AST references and the
//!   parser guide in [guides](crate::docs::guides).
//! - Wiring up LSP features, storage, watchers, or progress? See
//!   [guides](crate::docs::guides).
//! - Running a daemon with multiple editor/CLI clients? See
//!   [tutorials](crate::docs::tutorials).

#[doc = include_str!("../../../docs/getting-started.md")]
pub mod getting_started {}

/// Conceptual background on how laburnum works.
pub mod concepts {
  #[doc = include_str!("../../../docs/concepts/content-addressing.md")]
  pub mod content_addressing {}

  #[doc = include_str!("../../../docs/concepts/data-organization.md")]
  pub mod data_organization {}

  #[doc = include_str!("../../../docs/concepts/incremental-compilation.md")]
  pub mod incremental_compilation {}

  #[doc = include_str!("../../../docs/concepts/task-scheduling.md")]
  pub mod task_scheduling {}
}

/// Task-oriented guides for building a language frontend and language server.
pub mod guides {
  #[doc = include_str!("../../../docs/guides/lexer-patterns.md")]
  pub mod lexer_patterns {}

  #[doc = include_str!("../../../docs/guides/cst-patterns.md")]
  pub mod cst_patterns {}

  #[doc = include_str!("../../../docs/guides/ast-patterns.md")]
  pub mod ast_patterns {}

  #[doc = include_str!("../../../docs/guides/implementing-parser.md")]
  pub mod implementing_parser {}

  #[doc = include_str!("../../../docs/guides/implementing-storage.md")]
  pub mod implementing_storage {}

  #[doc = include_str!("../../../docs/guides/implementing-lsp-features.md")]
  pub mod implementing_lsp_features {}

  #[doc = include_str!("../../../docs/guides/implementing-watchers.md")]
  pub mod implementing_watchers {}

  #[doc = include_str!("../../../docs/guides/incremental-records.md")]
  pub mod incremental_records {}

  #[doc = include_str!("../../../docs/guides/progress-tracking.md")]
  pub mod progress_tracking {}

  #[doc = include_str!("../../../docs/guides/error.md")]
  pub mod error {}

  #[doc = include_str!("../../../docs/guides/snapshot-testing-with-bluegum.md")]
  pub mod snapshot_testing_with_bluegum {}

  #[doc = include_str!("../../../docs/guides/testing-strategies.md")]
  pub mod testing_strategies {}
}

/// End-to-end tutorials.
pub mod tutorials {
  #[doc = include_str!("../../../docs/tutorials/ipc-multi-client.md")]
  pub mod ipc_multi_client {}
}