<!doctype html>
<title>CodeMirror: User Manual</title>
<meta charset="utf-8"/>
<link rel=stylesheet href="docs.css">
<script src="activebookmark.js"></script>
<script src="../lib/codemirror.js"></script>
<link rel="stylesheet" href="../lib/codemirror.css">
<script src="../addon/runmode/runmode.js"></script>
<script src="../addon/runmode/colorize.js"></script>
<script src="../mode/javascript/javascript.js"></script>
<script src="../mode/xml/xml.js"></script>
<script src="../mode/css/css.js"></script>
<script src="../mode/htmlmixed/htmlmixed.js"></script>
<style>
dt { text-indent: -2em; padding-left: 2em; margin-top: 1em; }
dd { margin-left: 1.5em; margin-bottom: 1em; }
dt {margin-top: 1em;}
dd dl, dd dt, dd dd, dd ul { margin-top: 0; margin-bottom: 0; }
dt + dt { margin-top: 0; }
dt.command { position: relative; }
span.keybinding { position: absolute; right: 0; font-size: 80%; color: #555; text-indent: 0; }
</style>
<div id=nav>
<a href="https://codemirror.net"><h1>CodeMirror</h1><img id=logo src="logo.png"></a>
<ul>
<li><a href="../index.html">Home</a></li>
<li><a href="#overview" class=active data-default="true">Manual</a></li>
<li><a href="https://github.com/codemirror/codemirror">Code</a></li>
</ul>
<ul>
<li><a href="#usage">Basic Usage</a></li>
<li><a href="#config">Configuration</a></li>
<li><a href="#events">Events</a></li>
<li><a href="#keymaps">Key maps</a></li>
<li><a href="#commands">Commands</a></li>
<li><a href="#styling">Customized Styling</a></li>
<li><a href="#api">Programming API</a>
<ul>
<li><a href="#api_constructor">Constructor</a></li>
<li><a href="#api_content">Content manipulation</a></li>
<li><a href="#api_selection">Selection</a></li>
<li><a href="#api_configuration">Configuration</a></li>
<li><a href="#api_doc">Document management</a></li>
<li><a href="#api_history">History</a></li>
<li><a href="#api_marker">Text-marking</a></li>
<li><a href="#api_decoration">Widget, gutter, and decoration</a></li>
<li><a href="#api_sizing">Sizing, scrolling, and positioning</a></li>
<li><a href="#api_mode">Mode, state, and tokens</a></li>
<li><a href="#api_misc">Miscellaneous methods</a></li>
<li><a href="#api_static">Static properties</a></li>
</ul>
</li>
<li><a href="#addons">Addons</a></li>
<li><a href="#modeapi">Writing CodeMirror Modes</a></li>
<li><a href="#vimapi">Vim Mode API</a>
<ul>
<li><a href="#vimapi_configuration">Configuration</a></li>
<li><a href="#vimapi_extending">Extending VIM</a></li>
</ul>
</li>
</ul>
</div>
<article>
<section class=first id=overview>
<h2 style="position: relative">
User manual and reference guide
<span style="color: #888; font-size: 1rem; position: absolute; right: 0; bottom: 0">version 5.52.0</span>
</h2>
<p>CodeMirror is a code-editor component that can be embedded in
Web pages. The core library provides <em>only</em> the editor
component, no accompanying buttons, auto-completion, or other IDE
functionality. It does provide a rich API on top of which such
functionality can be straightforwardly implemented. See
the <a href="#addons">addons</a> included in the distribution,
and the <a href="https://github.com/codemirror/CodeMirror/wiki/CodeMirror-addons">list
of externally hosted addons</a>, for reusable
implementations of extra features.</p>
<p>CodeMirror works with language-specific modes. Modes are
JavaScript programs that help color (and optionally indent) text
written in a given language. The distribution comes with a number
of modes (see the <a href="../mode/"><code>mode/</code></a>
directory), and it isn't hard to <a href="#modeapi">write new
ones</a> for other languages.</p>
</section>
<section id=usage>
<h2>Basic Usage</h2>
<p>The easiest way to use CodeMirror is to simply load the script
and style sheet found under <code>lib/</code> in the distribution,
plus a mode script from one of the <code>mode/</code> directories.
For example:</p>
<pre data-lang="text/html"><script src="lib/codemirror.js"></script>
<link rel="stylesheet" href="lib/codemirror.css">
<script src="mode/javascript/javascript.js"></script></pre>
<p>(Alternatively, use a module loader. <a href="#modloader">More
about that later.</a>)</p>
<p>Having done this, an editor instance can be created like
this:</p>
<pre data-lang="javascript">var myCodeMirror = CodeMirror(document.body);</pre>
<p>The editor will be appended to the document body, will start
empty, and will use the mode that we loaded. To have more control
over the new editor, a configuration object can be passed
to <a href="#CodeMirror"><code>CodeMirror</code></a> as a second
argument:</p>
<pre data-lang="javascript">var myCodeMirror = CodeMirror(document.body, {
value: "function myScript(){return 100;}\n",
mode: "javascript"
});</pre>
<p>This will initialize the editor with a piece of code already in
it, and explicitly tell it to use the JavaScript mode (which is
useful when multiple modes are loaded).
See <a href="#config">below</a> for a full discussion of the
configuration options that CodeMirror accepts.</p>
<p>In cases where you don't want to append the editor to an
element, and need more control over the way it is inserted, the
first argument to the <code>CodeMirror</code> function can also
be a function that, when given a DOM element, inserts it into the
document somewhere. This could be used to, for example, replace a
textarea with a real editor:</p>
<pre data-lang="javascript">var myCodeMirror = CodeMirror(function(elt) {
myTextArea.parentNode.replaceChild(elt, myTextArea);
}, {value: myTextArea.value});</pre>
<p>However, for this use case, which is a common way to use
CodeMirror, the library provides a much more powerful
shortcut:</p>
<pre data-lang="javascript">var myCodeMirror = CodeMirror.fromTextArea(myTextArea);</pre>
<p>This will, among other things, ensure that the textarea's value
is updated with the editor's contents when the form (if it is part
of a form) is submitted. See the <a href="#fromTextArea">API
reference</a> for a full description of this method.</p>
<h3 id=modloader>Module loaders</h3>
<p>The files in the CodeMirror distribution contain shims for
loading them (and their dependencies) in AMD or CommonJS
environments. If the variables <code>exports</code>
and <code>module</code> exist and have type object, CommonJS-style
require will be used. If not, but there is a
function <code>define</code> with an <code>amd</code> property
present, AMD-style (RequireJS) will be used.</p>
<p>It is possible to
use <a href="http://browserify.org/">Browserify</a> or similar
tools to statically build modules using CodeMirror. Alternatively,
use <a href="http://requirejs.org/">RequireJS</a> to dynamically
load dependencies at runtime. Both of these approaches have the
advantage that they don't use the global namespace and can, thus,
do things like load multiple versions of CodeMirror alongside each
other.</p>
<p>Here's a simple example of using RequireJS to load CodeMirror:</p>
<pre data-lang="javascript">require([
"cm/lib/codemirror", "cm/mode/htmlmixed/htmlmixed"
], function(CodeMirror) {
CodeMirror.fromTextArea(document.getElementById("code"), {
lineNumbers: true,
mode: "htmlmixed"
});
});</pre>
<p>It will automatically load the modes that the mixed HTML mode
depends on (XML, JavaScript, and CSS). Do <em>not</em> use
RequireJS' <code>paths</code> option to configure the path to
CodeMirror, since it will break loading submodules through
relative paths. Use
the <a
cesium源码,直接解压放到vscode中运行就行
需积分: 0 160 浏览量
更新于2024-06-05
收藏 66.68MB ZIP 举报
【cesium源码】是一个专为Web开发设计的开源3D地球浏览器的源代码库,主要用JavaScript编写,用于在Web应用中展示高精度的地理空间数据和3D场景。这个压缩包包含了运行和理解Cesium项目所需的核心文件,可以直接在Visual Studio Code (VSCode)中解压并运行。下面我们将详细探讨这些核心文件的作用和Cesium的相关知识点。
1. **gulpfile.js**:Gulp是自动化构建工具,用于简化项目构建流程,如编译、压缩、合并文件等。`gulpfile.js`是Gulp的工作配置文件,定义了不同的任务,如编译源代码、执行测试、创建打包版本等。开发者可以根据这个文件定制自己的构建流程。
2. **server.js**:这是Cesium的本地开发服务器脚本,基于Node.js。运行此文件可以启动一个简单的HTTP服务器,用于在本地预览和测试Cesium应用程序。开发者可以通过修改或扩展此脚本来调整服务器行为。
3. **package.json**:这是Node.js项目的核心配置文件,列出了项目依赖的npm模块和项目的元信息(如作者、版本等)。你可以通过运行`npm install`来安装所有列出的依赖,使得Cesium源码可以在本地环境中正常运行。
4. **CHANGES.md**:这份文件记录了Cesium的版本更新历史,包括每个版本的新特性、改进和已知问题。开发者可以通过阅读此文件了解Cesium的最新发展和可能的兼容性问题。
5. **LICENSE.md**:Cesium使用Apache 2.0许可证,这是一个宽松的开源许可证,允许商业使用。`LICENSE.md`文件详细阐述了使用、复制、分发Cesium源码的法律条款。
6. **README.md**:这是项目的简要介绍,通常包含如何安装、运行和开发Cesium的基本指南。对于新用户来说,这是开始探索Cesium的第一步。
7. **Source**:这个目录包含了Cesium的源代码,分为多个子目录,如`Core`、`Widgets`等,分别存储核心功能和用户界面组件。开发者可以通过阅读源码了解Cesium的实现细节,或者对其进行自定义和扩展。
8. **Specs**:这是单元测试的目录,使用 Jasmine 测试框架编写。这些测试确保Cesium的功能正确无误,并且在后续的开发中保持一致性。
9. **ThirdParty**:这里存放了Cesium依赖的第三方库,例如数学库(如gl-matrix)、图片处理库等,它们是Cesium实现3D渲染和计算的基础。
10. **Build**:这个目录通常用于存放构建过程生成的文件,比如打包后的JavaScript库、CSS样式表等。在实际项目中,你可能会引用这些构建后的文件,而不是源代码。
Cesium源码提供了一个强大的3D地球渲染引擎,适用于Web GIS应用、虚拟现实场景创建等领域。开发者可以利用提供的源代码进行二次开发,定制自己的地图功能,或者学习和研究3D图形渲染、地理空间数据处理等相关技术。通过深入理解和掌握这些核心文件,你可以更有效地利用Cesium构建高性能的Web应用。
苦逼老百姓
- 粉丝: 12
- 资源: 1
最新资源
- 上位机与PLC 通讯源码 DEMO 上位机与三菱PLC,西门子PLC通讯 同时一起通讯,单独控制,三菱采用官方MX 通讯,支持三菱FX系列,A系列,Q系列,L系列,R系列,全系系列,各种串口和各种
- 三相PWM整流器双闭环控制,电压外环,电流内环,PLL 采用SVPWM调制,代码编写 动态和稳态特性较好,可提供参考资料
- COMSOL流沙层注浆数值模拟研究 案例 本模型来源于文献复现,该文献分析了流沙层地质结构特点,应用有限元分析软件COMSOL Multiphysics对流沙层渗透注浆进行稳态与瞬态的数值模拟研究
- TI C2000内部控制算法,包含零极点控制,PID,锁相环,MPPT最大功率点跟踪等
- 含风光柴储微网多目标优化调度 MATLAB代码 关键词:微网调度 风光柴储 粒子群算法 多目标优化 参考文档:《基于多目标粒子群算法的微电网优化调度》 仿真平台:MATLAB 平台采用粒子群实现求解
- 充电控制器,太阳能光伏MPPT控制蓄电池充电模型 其中,光伏MPPT控制采用扰动观测法(P&O法),蓄电池充电采用三阶段充电控制 仿真模型附加一份仿真说明文档,便于理解和修改参数 版本: R20
- 磁链观测器 vesc中使用的方法 已经移植到了自己的工程中,实现0速闭环启动 代码、文档、仿真是一一对应的,方便学习
- MATLAB环境下一种基于sqeezenet网络迁移学习的滚动轴承故障诊断方法 算法运行环境为MATLAB r2021b,该代码展示了如何使用深度学习(迁移学习)方法对滚动轴承进行故障诊断,演示了如
- abaqus-Python脚本建立直线、缓和曲线、曲线隧道和轨道
- 电子凸轮-区间运动Ver1.1.3(位置跟随,去程) 0.一个主轴伺服+一个从轴伺服 1.主轴伺服定速运动(启动不带加速),从轴伺服跟随 2.在西门子200smart或CPU224XP中运行 3.维
- 西门子1200 PLC与3台三菱CS80变频器通讯程序 器件:西门子1200 PLC,3台三菱CS80变频器,西门子KTP700 Basic Pn触摸屏,昆仑通态触摸屏(带以太网),中
- comsol流固耦合 搅拌器在混凝土浆液中搅拌流场及应力分布 可推广至在任意液体中固体搅拌扰动流场及力学特征
- comsol单孔激光烧蚀
- comsol电化学喷射腐蚀
- MATLAB代码:基于主从博弈的电热综合能源系统动态定价与能量管理 关键词:主从博弈 电热综合能源 动态定价 能量管理 参考文档:店主自编文档,完全复现 仿真平台:MATLAB 平台 优势:代码
- MATLAB代码:基于模型预测控制的楼宇负荷需求响应研究 关键词:楼宇负荷 空调 模型预测控制 需求响应 参考文档:Model Predictive Control of Thermal Sto