summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-babi.spec389
-rw-r--r--sources1
3 files changed, 391 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..8000a39 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/babi-1.5.4.tar.gz
diff --git a/python-babi.spec b/python-babi.spec
new file mode 100644
index 0000000..fe32141
--- /dev/null
+++ b/python-babi.spec
@@ -0,0 +1,389 @@
+%global _empty_manifest_terminate_build 0
+Name: python-babi
+Version: 1.5.4
+Release: 1
+Summary: a text editor
+License: MIT
+URL: https://github.com/asottile/babi
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/00/4e/d4897dbd7552c78f97f079dfa057ae794307b9403b43d28de38c54dfa0b0/babi-1.5.4.tar.gz
+BuildArch: noarch
+
+Requires: python3-babi-grammars
+Requires: python3-identify
+Requires: python3-onigurumacffi
+Requires: python3-importlib-metadata
+Requires: python3-windows-curses
+
+%description
+a text editor, eventually...
+### installation
+```bash
+pip install babi
+```
+babi works best in a virtualenv
+### why is it called babi?
+I used to use the text editor `nano`, frequently I typo this. on a qwerty
+keyboard, when the right hand is shifted left by one, `nano` becomes `babi`.
+### babi vs. nano
+here is a youtube video where I discuss the motivation for creating and using
+`babi` instead of `nano`:
+[![youtube video about babi](https://img.youtube.com/vi/WyR1hAGmR3g/mqdefault.jpg)](https://youtu.be/WyR1hAGmR3g)
+### quitting babi
+currently you can quit `babi` by using <kbd>^X</kbd> (or via <kbd>esc</kbd> +
+<kbd>:q</kbd>).
+### key combinations
+these are all of the current key bindings in babi
+- <kbd>^S</kbd>: save
+- <kbd>^O</kbd>: save as
+- <kbd>^X</kbd>: quit
+- <kbd>^P</kbd>: open file
+- arrow keys: movement
+- <kbd>^A</kbd> / <kbd>home</kbd>: move to beginning of line
+- <kbd>^E</kbd> / <kbd>end</kbd>: move to end of line
+- <kbd>^Y</kbd> / <kbd>pageup</kbd>: move up one page
+- <kbd>^V</kbd> / <kbd>pagedown</kbd>: move down one page
+- <kbd>^-left</kbd> / <kbd>^-right</kbd>: jump by word
+- <kbd>^-home</kbd> / <kbd>^-end</kbd>: jump to beginning / end of file
+- <kbd>M-Up</kbd> / <kbd>M-Down</kbd>: jump to previous / next paragraph
+- <kbd>^_</kbd>: jump to line number
+- selection: <kbd>shift</kbd> + ...: extend the current selection
+ - arrow keys
+ - <kbd>home</kbd> / <kbd>end</kdb>
+ - <kbd>pageup</kbd> / <kbd>pagedown</kbd>
+ - <kbd>^-left</kbd> / <kbd>^-right</kbd>
+ - <kbd>^-end</kbd> / <kbd>^-home</kbd>
+- <kbd>tab</kbd> / <kbd>shift-tab</kbd>: indent or dedent current line (or
+ selection)
+- <kbd>^K</kbd> / <kbd>^U</kbd>: cut and uncut the current line (or selection)
+- <kbd>M-u</kbd> / <kbd>M-U</kbd> or <kbd>M-e</kbd>: undo / redo
+- <kbd>^W</kbd>: search
+- <kbd>^\\</kbd>: search and replace
+- <kbd>^C</kbd>: show the current position in the file
+- <kbd>^-up</kbd> / <kbd>^-down</kbd>: scroll screen by a single line
+- <kbd>M-left</kbd> / <kbd>M-right</kbd>: go to previous / next file
+- <kbd>^Z</kbd>: background
+- <kbd>^T</kbd>: run linter
+ - by default, runs `pre-commit run --files <filename>`
+ - outside of a git repo will run `flake8 <filename>` for python files
+ - <kbd>^-S-Up</kbd>, <kbd>^-S-Down</kbd>: navigate to previous / next error
+ - <kbd>M-t</kbd> focus the linting panel
+ - <kbd>^C</kbd>, <kbd>^X</kbd>: clear and close the linting panel
+ - <kbd>Esc</kbd>, <kbd>M-t</kdb>: unfocus the linting panel
+ - arrow keys: movement inside the linting panel
+- <kbd>esc</kbd>: open the command mode
+ - <kbd>:q</kbd>: quit
+ - <kbd>:w</kbd>: write the file
+ - <kbd>:wq</kbd>: write the file and quit
+ - <kbd>:qall</kbd>: quit every open file
+ - <kbd>:comment</kbd>: comment out the current line / selection
+ - <kbd>:reload</kbd>: reload the file contents
+ - <kbd>:sort</kbd>: sort the file (or selection)
+ - <kbd>:tabsize X</kbd>: set the tabsize
+in prompts (search, search replace, command):
+- <kbd>^C</kbd>: cancel
+- <kbd>^K</kbd>: cut to end
+- <kbd>^R</kbd>: reverse search
+### setting up syntax highlighting
+syntax highlighting should work out of the box!
+if you want a custom theme find a visual studio code theme, convert it to
+json (if it is not already json) and put it at `~/.config/babi/theme.json`.
+a helper script is provided to make this easier: `./bin/download-theme NAME URL`
+### keyboard shortcuts on macos
+to get the most out of babi's built in keyboard shortcuts, a few settings must
+be changed on macos with Terminal.app:
+- in **System Preferences**: **Keyboard** > **Shortcuts** >
+ **Mission Control**: disable or rebind "Move left a space" and
+ "Move right a space" (the defaults `⌃ →` and `⌃ ←` conflict)
+- in **Terminal.app**: **Terminal** > **Preferences** > **Profiles** >
+ **Keyboard**:
+ - check **Use Option as Meta key**
+ - ensure the following keys are enabled:
+ - `⌃ →`: `\033[1;5C`
+ - `⌃ ←`: `\033[1;5D`
+ - `⇧ ↑`: `\033[1;2A`
+ - `⇧ ↓`: `\033[1;2B`
+ - `⇧ →`: `\033[1;2C`
+ - `⇧ ←`: `\033[1;2D`
+## demos
+most things work! here's a few screenshots
+### file view
+this opens the file, displays it, and can be edited and can save! unknown keys
+are displayed as errors in the status bar. babi will scroll if the cursor
+goes off screen either from resize events or from movement. babi can edit
+multiple files. babi has a command mode (so you can quit it like vim
+<kbd>:q</kbd>!). babi also supports syntax highlighting
+![](https://i.fluffy.cc/5WFZBJ4mWs7wtThD9strQnGlJqw4Z9KS.png)
+![](https://i.fluffy.cc/qrNhgCK34qKQ6tw4GHLSGs4984Qqnqh7.png)
+![](https://i.fluffy.cc/DKlkjnZ4tgfnxH7cxjnLcB7GkBVdW35v.png)
+![](https://i.fluffy.cc/VqHWHfWNW73sppZlHv0C4lw63TVczZfZ.png)
+![](https://i.fluffy.cc/p8lv61TCql1MJfpBDqbNPWPf27lmGWFN.png)
+![](https://i.fluffy.cc/ZH5sswB4FSbpW8FfcXL1KZWdJnjxRkbW.png)
+![](https://i.fluffy.cc/Rw8nZKFC3R36mNrV01fL2gk4rfwWn7wX.png)
+![](https://i.fluffy.cc/FSD92ZVN4xcMFPv1V7gc0Xzk8TCQTgdg.png)
+
+%package -n python3-babi
+Summary: a text editor
+Provides: python-babi
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-babi
+a text editor, eventually...
+### installation
+```bash
+pip install babi
+```
+babi works best in a virtualenv
+### why is it called babi?
+I used to use the text editor `nano`, frequently I typo this. on a qwerty
+keyboard, when the right hand is shifted left by one, `nano` becomes `babi`.
+### babi vs. nano
+here is a youtube video where I discuss the motivation for creating and using
+`babi` instead of `nano`:
+[![youtube video about babi](https://img.youtube.com/vi/WyR1hAGmR3g/mqdefault.jpg)](https://youtu.be/WyR1hAGmR3g)
+### quitting babi
+currently you can quit `babi` by using <kbd>^X</kbd> (or via <kbd>esc</kbd> +
+<kbd>:q</kbd>).
+### key combinations
+these are all of the current key bindings in babi
+- <kbd>^S</kbd>: save
+- <kbd>^O</kbd>: save as
+- <kbd>^X</kbd>: quit
+- <kbd>^P</kbd>: open file
+- arrow keys: movement
+- <kbd>^A</kbd> / <kbd>home</kbd>: move to beginning of line
+- <kbd>^E</kbd> / <kbd>end</kbd>: move to end of line
+- <kbd>^Y</kbd> / <kbd>pageup</kbd>: move up one page
+- <kbd>^V</kbd> / <kbd>pagedown</kbd>: move down one page
+- <kbd>^-left</kbd> / <kbd>^-right</kbd>: jump by word
+- <kbd>^-home</kbd> / <kbd>^-end</kbd>: jump to beginning / end of file
+- <kbd>M-Up</kbd> / <kbd>M-Down</kbd>: jump to previous / next paragraph
+- <kbd>^_</kbd>: jump to line number
+- selection: <kbd>shift</kbd> + ...: extend the current selection
+ - arrow keys
+ - <kbd>home</kbd> / <kbd>end</kdb>
+ - <kbd>pageup</kbd> / <kbd>pagedown</kbd>
+ - <kbd>^-left</kbd> / <kbd>^-right</kbd>
+ - <kbd>^-end</kbd> / <kbd>^-home</kbd>
+- <kbd>tab</kbd> / <kbd>shift-tab</kbd>: indent or dedent current line (or
+ selection)
+- <kbd>^K</kbd> / <kbd>^U</kbd>: cut and uncut the current line (or selection)
+- <kbd>M-u</kbd> / <kbd>M-U</kbd> or <kbd>M-e</kbd>: undo / redo
+- <kbd>^W</kbd>: search
+- <kbd>^\\</kbd>: search and replace
+- <kbd>^C</kbd>: show the current position in the file
+- <kbd>^-up</kbd> / <kbd>^-down</kbd>: scroll screen by a single line
+- <kbd>M-left</kbd> / <kbd>M-right</kbd>: go to previous / next file
+- <kbd>^Z</kbd>: background
+- <kbd>^T</kbd>: run linter
+ - by default, runs `pre-commit run --files <filename>`
+ - outside of a git repo will run `flake8 <filename>` for python files
+ - <kbd>^-S-Up</kbd>, <kbd>^-S-Down</kbd>: navigate to previous / next error
+ - <kbd>M-t</kbd> focus the linting panel
+ - <kbd>^C</kbd>, <kbd>^X</kbd>: clear and close the linting panel
+ - <kbd>Esc</kbd>, <kbd>M-t</kdb>: unfocus the linting panel
+ - arrow keys: movement inside the linting panel
+- <kbd>esc</kbd>: open the command mode
+ - <kbd>:q</kbd>: quit
+ - <kbd>:w</kbd>: write the file
+ - <kbd>:wq</kbd>: write the file and quit
+ - <kbd>:qall</kbd>: quit every open file
+ - <kbd>:comment</kbd>: comment out the current line / selection
+ - <kbd>:reload</kbd>: reload the file contents
+ - <kbd>:sort</kbd>: sort the file (or selection)
+ - <kbd>:tabsize X</kbd>: set the tabsize
+in prompts (search, search replace, command):
+- <kbd>^C</kbd>: cancel
+- <kbd>^K</kbd>: cut to end
+- <kbd>^R</kbd>: reverse search
+### setting up syntax highlighting
+syntax highlighting should work out of the box!
+if you want a custom theme find a visual studio code theme, convert it to
+json (if it is not already json) and put it at `~/.config/babi/theme.json`.
+a helper script is provided to make this easier: `./bin/download-theme NAME URL`
+### keyboard shortcuts on macos
+to get the most out of babi's built in keyboard shortcuts, a few settings must
+be changed on macos with Terminal.app:
+- in **System Preferences**: **Keyboard** > **Shortcuts** >
+ **Mission Control**: disable or rebind "Move left a space" and
+ "Move right a space" (the defaults `⌃ →` and `⌃ ←` conflict)
+- in **Terminal.app**: **Terminal** > **Preferences** > **Profiles** >
+ **Keyboard**:
+ - check **Use Option as Meta key**
+ - ensure the following keys are enabled:
+ - `⌃ →`: `\033[1;5C`
+ - `⌃ ←`: `\033[1;5D`
+ - `⇧ ↑`: `\033[1;2A`
+ - `⇧ ↓`: `\033[1;2B`
+ - `⇧ →`: `\033[1;2C`
+ - `⇧ ←`: `\033[1;2D`
+## demos
+most things work! here's a few screenshots
+### file view
+this opens the file, displays it, and can be edited and can save! unknown keys
+are displayed as errors in the status bar. babi will scroll if the cursor
+goes off screen either from resize events or from movement. babi can edit
+multiple files. babi has a command mode (so you can quit it like vim
+<kbd>:q</kbd>!). babi also supports syntax highlighting
+![](https://i.fluffy.cc/5WFZBJ4mWs7wtThD9strQnGlJqw4Z9KS.png)
+![](https://i.fluffy.cc/qrNhgCK34qKQ6tw4GHLSGs4984Qqnqh7.png)
+![](https://i.fluffy.cc/DKlkjnZ4tgfnxH7cxjnLcB7GkBVdW35v.png)
+![](https://i.fluffy.cc/VqHWHfWNW73sppZlHv0C4lw63TVczZfZ.png)
+![](https://i.fluffy.cc/p8lv61TCql1MJfpBDqbNPWPf27lmGWFN.png)
+![](https://i.fluffy.cc/ZH5sswB4FSbpW8FfcXL1KZWdJnjxRkbW.png)
+![](https://i.fluffy.cc/Rw8nZKFC3R36mNrV01fL2gk4rfwWn7wX.png)
+![](https://i.fluffy.cc/FSD92ZVN4xcMFPv1V7gc0Xzk8TCQTgdg.png)
+
+%package help
+Summary: Development documents and examples for babi
+Provides: python3-babi-doc
+%description help
+a text editor, eventually...
+### installation
+```bash
+pip install babi
+```
+babi works best in a virtualenv
+### why is it called babi?
+I used to use the text editor `nano`, frequently I typo this. on a qwerty
+keyboard, when the right hand is shifted left by one, `nano` becomes `babi`.
+### babi vs. nano
+here is a youtube video where I discuss the motivation for creating and using
+`babi` instead of `nano`:
+[![youtube video about babi](https://img.youtube.com/vi/WyR1hAGmR3g/mqdefault.jpg)](https://youtu.be/WyR1hAGmR3g)
+### quitting babi
+currently you can quit `babi` by using <kbd>^X</kbd> (or via <kbd>esc</kbd> +
+<kbd>:q</kbd>).
+### key combinations
+these are all of the current key bindings in babi
+- <kbd>^S</kbd>: save
+- <kbd>^O</kbd>: save as
+- <kbd>^X</kbd>: quit
+- <kbd>^P</kbd>: open file
+- arrow keys: movement
+- <kbd>^A</kbd> / <kbd>home</kbd>: move to beginning of line
+- <kbd>^E</kbd> / <kbd>end</kbd>: move to end of line
+- <kbd>^Y</kbd> / <kbd>pageup</kbd>: move up one page
+- <kbd>^V</kbd> / <kbd>pagedown</kbd>: move down one page
+- <kbd>^-left</kbd> / <kbd>^-right</kbd>: jump by word
+- <kbd>^-home</kbd> / <kbd>^-end</kbd>: jump to beginning / end of file
+- <kbd>M-Up</kbd> / <kbd>M-Down</kbd>: jump to previous / next paragraph
+- <kbd>^_</kbd>: jump to line number
+- selection: <kbd>shift</kbd> + ...: extend the current selection
+ - arrow keys
+ - <kbd>home</kbd> / <kbd>end</kdb>
+ - <kbd>pageup</kbd> / <kbd>pagedown</kbd>
+ - <kbd>^-left</kbd> / <kbd>^-right</kbd>
+ - <kbd>^-end</kbd> / <kbd>^-home</kbd>
+- <kbd>tab</kbd> / <kbd>shift-tab</kbd>: indent or dedent current line (or
+ selection)
+- <kbd>^K</kbd> / <kbd>^U</kbd>: cut and uncut the current line (or selection)
+- <kbd>M-u</kbd> / <kbd>M-U</kbd> or <kbd>M-e</kbd>: undo / redo
+- <kbd>^W</kbd>: search
+- <kbd>^\\</kbd>: search and replace
+- <kbd>^C</kbd>: show the current position in the file
+- <kbd>^-up</kbd> / <kbd>^-down</kbd>: scroll screen by a single line
+- <kbd>M-left</kbd> / <kbd>M-right</kbd>: go to previous / next file
+- <kbd>^Z</kbd>: background
+- <kbd>^T</kbd>: run linter
+ - by default, runs `pre-commit run --files <filename>`
+ - outside of a git repo will run `flake8 <filename>` for python files
+ - <kbd>^-S-Up</kbd>, <kbd>^-S-Down</kbd>: navigate to previous / next error
+ - <kbd>M-t</kbd> focus the linting panel
+ - <kbd>^C</kbd>, <kbd>^X</kbd>: clear and close the linting panel
+ - <kbd>Esc</kbd>, <kbd>M-t</kdb>: unfocus the linting panel
+ - arrow keys: movement inside the linting panel
+- <kbd>esc</kbd>: open the command mode
+ - <kbd>:q</kbd>: quit
+ - <kbd>:w</kbd>: write the file
+ - <kbd>:wq</kbd>: write the file and quit
+ - <kbd>:qall</kbd>: quit every open file
+ - <kbd>:comment</kbd>: comment out the current line / selection
+ - <kbd>:reload</kbd>: reload the file contents
+ - <kbd>:sort</kbd>: sort the file (or selection)
+ - <kbd>:tabsize X</kbd>: set the tabsize
+in prompts (search, search replace, command):
+- <kbd>^C</kbd>: cancel
+- <kbd>^K</kbd>: cut to end
+- <kbd>^R</kbd>: reverse search
+### setting up syntax highlighting
+syntax highlighting should work out of the box!
+if you want a custom theme find a visual studio code theme, convert it to
+json (if it is not already json) and put it at `~/.config/babi/theme.json`.
+a helper script is provided to make this easier: `./bin/download-theme NAME URL`
+### keyboard shortcuts on macos
+to get the most out of babi's built in keyboard shortcuts, a few settings must
+be changed on macos with Terminal.app:
+- in **System Preferences**: **Keyboard** > **Shortcuts** >
+ **Mission Control**: disable or rebind "Move left a space" and
+ "Move right a space" (the defaults `⌃ →` and `⌃ ←` conflict)
+- in **Terminal.app**: **Terminal** > **Preferences** > **Profiles** >
+ **Keyboard**:
+ - check **Use Option as Meta key**
+ - ensure the following keys are enabled:
+ - `⌃ →`: `\033[1;5C`
+ - `⌃ ←`: `\033[1;5D`
+ - `⇧ ↑`: `\033[1;2A`
+ - `⇧ ↓`: `\033[1;2B`
+ - `⇧ →`: `\033[1;2C`
+ - `⇧ ←`: `\033[1;2D`
+## demos
+most things work! here's a few screenshots
+### file view
+this opens the file, displays it, and can be edited and can save! unknown keys
+are displayed as errors in the status bar. babi will scroll if the cursor
+goes off screen either from resize events or from movement. babi can edit
+multiple files. babi has a command mode (so you can quit it like vim
+<kbd>:q</kbd>!). babi also supports syntax highlighting
+![](https://i.fluffy.cc/5WFZBJ4mWs7wtThD9strQnGlJqw4Z9KS.png)
+![](https://i.fluffy.cc/qrNhgCK34qKQ6tw4GHLSGs4984Qqnqh7.png)
+![](https://i.fluffy.cc/DKlkjnZ4tgfnxH7cxjnLcB7GkBVdW35v.png)
+![](https://i.fluffy.cc/VqHWHfWNW73sppZlHv0C4lw63TVczZfZ.png)
+![](https://i.fluffy.cc/p8lv61TCql1MJfpBDqbNPWPf27lmGWFN.png)
+![](https://i.fluffy.cc/ZH5sswB4FSbpW8FfcXL1KZWdJnjxRkbW.png)
+![](https://i.fluffy.cc/Rw8nZKFC3R36mNrV01fL2gk4rfwWn7wX.png)
+![](https://i.fluffy.cc/FSD92ZVN4xcMFPv1V7gc0Xzk8TCQTgdg.png)
+
+%prep
+%autosetup -n babi-1.5.4
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-babi -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Thu May 18 2023 Python_Bot <Python_Bot@openeuler.org> - 1.5.4-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..434b370
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+1f1cf6462e074dfdc93b81208061fb9f babi-1.5.4.tar.gz