-
-
Notifications
You must be signed in to change notification settings - Fork 129
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: add
line-numbers-relative
extensions.
- Loading branch information
1 parent
e0d88c7
commit ab77e68
Showing
12 changed files
with
216 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
<!--rehype:ignore:start--> | ||
|
||
# Relative Line Numbers Extensions | ||
|
||
<!--rehype:ignore:end--> | ||
|
||
[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-line-numbers-relative.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-line-numbers-relative) | ||
|
||
Relative line numbers Extensions for CodeMirror6. | ||
|
||
[![Relative line numbers Extensions](https://user-images.githubusercontent.com/1680273/178179301-bbb70117-8d16-453e-b723-12efc132a3d1.png)](https://uiwjs.github.io/react-codemirror/#/extensions/line-numbers-relative) | ||
|
||
## Install | ||
|
||
```bash | ||
npm install @uiw/codemirror-extensions-line-numbers-relative --save | ||
``` | ||
|
||
## Usage | ||
|
||
```jsx | ||
import CodeMirror from '@uiw/react-codemirror'; | ||
import { lineNumbersRelative } from '@uiw/codemirror-extensions-line-numbers-relative'; | ||
|
||
function App() { | ||
return <CodeMirror value="console.log('hello world!');" height="200px" extensions={[lineNumbersRelative]} />; | ||
} | ||
export default App; | ||
``` | ||
|
||
```js | ||
import { EditorView } from '@codemirror/view'; | ||
import { EditorState } from '@codemirror/state'; | ||
import { lineNumbersRelative } from '@uiw/codemirror-extensions-line-numbers-relative'; | ||
|
||
const state = EditorState.create({ | ||
doc: 'my source code', | ||
extensions: [lineNumbersRelative], | ||
}); | ||
|
||
const view = new EditorView({ | ||
parent: document.querySelector('#editor'), | ||
state, | ||
}); | ||
``` | ||
|
||
## Contributors | ||
|
||
As always, thanks to our amazing contributors! | ||
|
||
<a href="https://github.com/uiwjs/react-codemirror/graphs/contributors"> | ||
<img src="https://uiwjs.github.io/react-codemirror/CONTRIBUTORS.svg" /> | ||
</a> | ||
|
||
Made with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors). | ||
|
||
## License | ||
|
||
Licensed under the MIT License. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
{ | ||
"name": "@uiw/codemirror-extensions-line-numbers-relative", | ||
"version": "4.11.1", | ||
"description": "Relative line numbers Extensions for CodeMirror6.", | ||
"homepage": "https://uiwjs.github.io/react-codemirror/#/extensions/line-numbers-relative", | ||
"author": "kenny wong <wowohoo@qq.com>", | ||
"license": "MIT", | ||
"main": "./cjs/index.js", | ||
"module": "./esm/index.js", | ||
"scripts": { | ||
"watch": "tsbb watch", | ||
"build": "tsbb build" | ||
}, | ||
"repository": { | ||
"type": "git", | ||
"url": "https://github.com/uiwjs/react-codemirror.git" | ||
}, | ||
"files": [ | ||
"src", | ||
"esm", | ||
"cjs" | ||
], | ||
"peerDependencies": { | ||
"@codemirror/state": ">=6.0.0", | ||
"@codemirror/view": ">=6.0.0" | ||
}, | ||
"devDependencies": { | ||
"@codemirror/state": "^6.1.0", | ||
"@codemirror/view": "^6.0.0" | ||
}, | ||
"keywords": [ | ||
"codemirror", | ||
"codemirror6", | ||
"line-numbers-relative", | ||
"extensions", | ||
"ide", | ||
"code" | ||
], | ||
"jest": { | ||
"coverageReporters": [ | ||
"lcov", | ||
"json-summary" | ||
] | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
import { lineNumbers } from '@codemirror/view'; | ||
import { Extension } from '@codemirror/state'; | ||
|
||
function formatNumber() { | ||
return lineNumbers({ | ||
formatNumber: (lineNo, state) => { | ||
if (lineNo > state.doc.lines) { | ||
return '0'; | ||
} | ||
const cursorLine = state.doc.lineAt(state.selection.asSingle().ranges[0].to).number; | ||
if (lineNo === cursorLine) { | ||
return '0'; | ||
} else { | ||
return Math.abs(cursorLine - lineNo).toString(); | ||
} | ||
}, | ||
}); | ||
} | ||
|
||
export const lineNumbersRelative: Extension = [formatNumber()]; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
{ | ||
"extends": "../../tsconfig", | ||
"include": ["src"], | ||
"compilerOptions": { | ||
"outDir": "./cjs", | ||
"baseUrl": ".", | ||
"noEmit": false | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,9 @@ | ||
import eventsMd from '@uiw/codemirror-extensions-events/README.md'; | ||
import colorMd from '@uiw/codemirror-extensions-color/README.md'; | ||
import lineNumbersRelativeMd from '@uiw/codemirror-extensions-line-numbers-relative/README.md'; | ||
|
||
export const mdSource = { | ||
events: eventsMd.source, | ||
color: colorMd.source, | ||
events: eventsMd.source, | ||
'line-mumbers-relative': lineNumbersRelativeMd.source, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
import MarkdownPreview from '@uiw/react-markdown-preview'; | ||
import data from '@uiw/codemirror-extensions-line-numbers-relative/README.md'; | ||
import { lineNumbersRelative } from '@uiw/codemirror-extensions-line-numbers-relative'; | ||
import CodeMirror, { ReactCodeMirrorProps } from '@uiw/react-codemirror'; | ||
import styled from 'styled-components'; | ||
import { useEffect, useState } from 'react'; | ||
import { langs } from '../../../langs'; | ||
|
||
const Warpper = styled.div` | ||
flex: 1; | ||
max-width: 980px; | ||
padding: 20px 20px 120px 20px; | ||
`; | ||
|
||
export const LineNumbersRelativeDoc = () => { | ||
const dark = document.documentElement.getAttribute('data-color-mode'); | ||
const [theme, setTheme] = useState<ReactCodeMirrorProps['theme']>(dark === 'dark' ? 'dark' : 'light'); | ||
useEffect(() => { | ||
setTheme(document.documentElement.getAttribute('data-color-mode') === 'dark' ? 'dark' : 'light'); | ||
document.addEventListener('colorschemechange', (e) => { | ||
setTheme(e.detail.colorScheme as ReactCodeMirrorProps['theme']); | ||
}); | ||
}, []); | ||
|
||
return ( | ||
<Warpper> | ||
<CodeMirror | ||
value={data.source} | ||
theme={theme} | ||
height="300px" | ||
style={{ margin: '0 0 23px 0' }} | ||
extensions={[langs.markdown(), lineNumbersRelative]} | ||
/> | ||
<MarkdownPreview source={data.source} /> | ||
</Warpper> | ||
); | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters