xi_core_lib/
lib.rs

1// Copyright 2016 The xi-editor Authors.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15//! The main library for xi-core.
16
17#![allow(
18    clippy::boxed_local,
19    clippy::cast_lossless,
20    clippy::collapsible_if,
21    clippy::let_and_return,
22    clippy::map_entry,
23    clippy::match_as_ref,
24    clippy::match_bool,
25    clippy::needless_pass_by_value,
26    clippy::new_without_default,
27    clippy::or_fun_call,
28    clippy::ptr_arg,
29    clippy::too_many_arguments,
30    clippy::unreadable_literal,
31    clippy::get_unwrap
32)]
33
34#[macro_use]
35extern crate log;
36extern crate regex;
37extern crate serde;
38#[macro_use]
39extern crate serde_json;
40#[macro_use]
41extern crate serde_derive;
42extern crate memchr;
43#[cfg(feature = "notify")]
44extern crate notify;
45extern crate syntect;
46extern crate time;
47extern crate toml;
48
49extern crate xi_rope;
50extern crate xi_rpc;
51extern crate xi_trace;
52extern crate xi_unicode;
53
54#[cfg(feature = "ledger")]
55mod ledger_includes {
56    extern crate fuchsia_zircon;
57    extern crate fuchsia_zircon_sys;
58    extern crate mxruntime;
59    #[macro_use]
60    extern crate fidl;
61    extern crate apps_ledger_services_public;
62    extern crate sha2;
63}
64#[cfg(feature = "ledger")]
65use ledger_includes::*;
66
67pub mod annotations;
68pub mod backspace;
69pub mod client;
70pub mod config;
71pub mod core;
72pub mod edit_types;
73pub mod editor;
74pub mod event_context;
75pub mod file;
76pub mod find;
77#[cfg(feature = "ledger")]
78pub mod fuchsia;
79pub mod index_set;
80pub mod layers;
81pub mod line_cache_shadow;
82pub mod line_ending;
83pub mod linewrap;
84pub mod movement;
85pub mod plugins;
86pub mod recorder;
87pub mod selection;
88pub mod styles;
89pub mod syntax;
90pub mod tabs;
91pub mod view;
92#[cfg(feature = "notify")]
93pub mod watcher;
94pub mod whitespace;
95pub mod width_cache;
96pub mod word_boundaries;
97
98pub mod rpc;
99
100#[cfg(feature = "ledger")]
101use apps_ledger_services_public::Ledger_Proxy;
102
103pub use crate::config::{BufferItems as BufferConfig, Table as ConfigTable};
104pub use crate::core::{WeakXiCore, XiCore};
105pub use crate::editor::EditType;
106pub use crate::plugins::manifest as plugin_manifest;
107pub use crate::plugins::rpc as plugin_rpc;
108pub use crate::plugins::PluginPid;
109pub use crate::syntax::{LanguageDefinition, LanguageId};
110pub use crate::tabs::test_helpers;
111pub use crate::tabs::{BufferId, BufferIdentifier, ViewId};