https://github.com/vhyrro/neorg Skip to content Sign up * Why GitHub? Features - + Mobile - + Actions - + Codespaces - + Packages - + Security - + Code review - + Issues - + Integrations - + GitHub Sponsors - + Customer stories- * Team * Enterprise * Explore + Explore GitHub - Learn and contribute + Topics - + Collections - + Trending - + Learning Lab - + Open source guides - Connect with others + The ReadME Project - + Events - + Community forum - + GitHub Education - + GitHub Stars program - * Marketplace * Pricing Plans - + Compare plans - + Contact Sales - + Education - [ ] [search-key] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} vhyrro / neorg * Sponsor Sponsor vhyrro/neorg * Notifications * Star 434 * Fork 5 Modernity meets insane extensibility. The future of organizing your life in Neovim. GPL-3.0 License 434 stars 5 forks Star Notifications * Code * Issues 0 * Pull requests 0 * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights main Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 2 branches 0 tags Code Clone HTTPS GitHub CLI [https://github.com/v] Use Git or checkout with SVN using the web URL. [gh repo clone vhyrro] Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Go back Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Go back Launching Xcode If nothing happens, download Xcode and try again. Go back Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @vhyrro vhyrro docs: update README.md ... 0834af5 Jul 11, 2021 docs: update README.md 0834af5 Git stats * 163 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github Update FUNDING.yml May 19, 2021 docs docs: update README, usage showcase and ROADMAP.md Jul 9, 2021 lua docs: add a bunch of comments to core.integrations.nvim-compe and cor... Jul 11, 2021 queries/norg fix: move queries from after/queries to root, maybe that will fix the... Jul 10, 2021 res docs: Update README with new GIFs and fix some bugs and missing feats Jul 11, 2021 LICENSE Added GPL v3 license Apr 16, 2021 README.md docs: update README.md Jul 11, 2021 View code Neorg - An Organized Future Manage Your Life with Neovim-inspired Keybinds Jump To The Most Important Directories with Workspaces Configure Everything - Literally TreeSitter Powered Editing Introduction Installation For the latest and greatest check out the unstable branch Setting up TreeSitter Usage [?][?] Keybinds Consult The Wiki Contributing Extra GIFs Language Injection Smort Syntax Completion Support Credits README.md [neorg] Neorg - An Organized Future Requires Discord Paypal BuyMeACoffee Patreon License Status --------------------------------------------------------------------- Life Organization Tool Written in Lua Introduction * Installation * Usage * Keybinds * Wiki GIFS Credits: Logo by Binx --------------------------------------------------------------------- The pain... it won't stop. After so much oppression from other text editors, it's time we fight back. With the introduction of lua, we will fight back. --------------------------------------------------------------------- Manage Your Life with Neovim-inspired Keybinds Woah, keybinds that actually make sense. Some text editors should take notes. [todo_items] --------------------------------------------------------------------- Jump To The Most Important Directories with Workspaces Teleport to your favourite locations right away. [workspaces] [workspaces] --------------------------------------------------------------------- Configure Everything - Literally Experience the power and configurability of Neorg's backend through modules and events. Select only the code you want - throw everything else away. [configurat] --------------------------------------------------------------------- TreeSitter Powered Editing Feel more accurate edits thanks to Neorg's deeper understanding of your documents with Treesitter (CURRENTLY WIP) [treesitter] Introduction Neorg is a tool designed to reimagine organization as you know it. Neo - new, org - organization. Grab some coffee, start writing some notes, let your editor handle the rest. Why do we need Neorg? There are currently projects designed to clone org-mode from emacs, what is the goal of this project? Whilst those projects are amazing, it's simply not enough. We need our own, better solution - one that will surpass every other text editor. One that will give you all the bragging rights for using Neovim. Here's how we'll do it: * Revise the org format - Simple, very extensible, unambiguous. Will make you feel right at home. Let's be real here, org and markdown have several flaws - ambiguity (tons of it), ugly syntax and the requirement for complex parsers. It's difficult to explain without doing some research, and I really advise educating yourself on just how bad markdown can get - I swear, it's worse than JS. What if we told you it's possible to eliminate those problems completely, all whilst keeping that familiar markdown feel? Enter the .norg file format, whose base spec is almost complete. The cross between all the best things from org and the best things from markdown, revised and merged into one. * Keybinds that make sense - vim's keybind philosophy is unlike any other, and we want to keep that vibe. Keys form a "language", one that you can speak, not one that you need to remember. * Infinite extensibility - no, that isn't a hyperbole. We mean it. Neorg is built upon an insanely modular and configurable backend - keep what you need, throw away what you don't care about. Use the defaults or change 'em. You are in control of what code runs and what code doesn't run. * Logic. Everything has a reason, everything has logical meaning. If there's a feature, it's there because it's necessary, not because two people asked for it. Installation Installation may seem a bit daunting, however it's nothing you can't understand. If you really like to be in control, you can read exactly what the below code snippets do in the wiki. * Packer: use { "vhyrro/neorg", config = function() require('neorg').setup { -- Tell Neorg what modules to load load = { ["core.defaults"] = {}, -- Load all the default modules ["core.norg.concealer"] = {}, -- Allows for use of icons ["core.norg.dirman"] = { -- Manage your directories with Neorg config = { workspaces = { my_workspace = "~/neorg" } } } }, } end, } Afterwards resource the current file and :PackerSync: PackerSync GIF Worried about lazy loading? It's very hard to do properly because of the way Neovim handles filetypes. I'm planning on adding a PR with support for Neorg files. Neorg practically lazy loads itself - it only runs when it detects a .norg extension. You shouldn't get any real startup time hits. For the latest and greatest check out the unstable branch Setting up TreeSitter As of right now, the TreeSitter parser is in its early stage. To install it, you want to run this code snippet before you invoke require('nvim-treesitter.configs').setup(): local parser_configs = require('nvim-treesitter.parsers').get_parser_configs() parser_configs.norg = { install_info = { url = "https://github.com/vhyrro/tree-sitter-norg", files = { "src/parser.c" }, branch = "main" }, } Having a rare occurence where the parser doesn't work instantly? Try running :e. You'll only need to run it once in your lifetime, for some reason TS doesn't have issues after that. Usage Simply drop into a .norg file and start typing! Usage Showcase You may realize that we don't have an insane amount of frontend features just yet. This doesn't mean the plugin isn't capable of those things, it just means we're working on them! We tried focusing heavily on the backend first, but now that that is almost done we are actually starting work on features just for you: * [ ] Telescope.nvim integration for several things * [*] TreeSitter parser (can be found here) + [*] AST Generation + [*] Custom highlight support + [*] Custom folds (done, but not pushed yet) + [*] Language injection (for code blocks) + [ ] Indentation engine based on the treesitter parser + [ ] Smarter todo item toggling with the TreeSitter AST Everything you see above will be coming soon! Here's the things we do currently support: * Indentation (a tad too predictive, will be fixed with TreeSitter) * Toggling of TODO items with keybinds * Very configurable workspaces * nvim-compe completion source It's all about the patience! We're gonna deliver all the juicy features ASAP. In the meantime you might be interested in reading the spec and familiarizing yourself with the new format :D [?][?] Keybinds Neorg comes with no keys bound by default. If you want to use all the default keys, you may want to modify the core.keybinds's configuration to generate them for you, here's how you would do it (note that this code snippet is an extension of the installation snippet): use { "vhyrro/neorg", config = function() require('neorg').setup { -- Tell Neorg what modules to load load = { ["core.defaults"] = {}, -- Load all the default modules ["core.keybinds"] = { -- Configure core.keybinds config = { default_keybinds = true, -- Generate the default keybinds neorg_leader = "o" -- This is the default if unspecified } }, ["core.norg.concealer"] = {}, -- Allows for use of icons ["core.norg.dirman"] = { -- Manage your directories with Neorg config = { workspaces = { my_workspace = "~/neorg" } } } }, } end, } You may actually want to change your keybinds though! Changing keybinds is a rather trivial task. The wiki entry for keybinds can be found here. It'll tell you the ins and outs of what you need to do :) Consult The Wiki The wiki is the go-to place if you need answers to anything Neorg-related. Usage, Keybinds, User Callbacks, Modules, Events? It's all there, so we recommend you seriously go read it! Contributing Contributions are always welcome and will always be welcome. You can check CONTRIBUTING.md if you wanna find out more. Have a cool idea? Want to implement something, but don't know where to start? I'm always here to help! You can always create an issue or join the discord and chat there. Extra GIFs Language Injection Get syntax highlighting for any language that's supported by treesitter. Injection Smort Syntax Thanks to TreeSitter we can achieve a surprising amount of precision. Trailing Modifier Showcas Comments Completion Neorg uses both TreeSitter and nvim-compe in unison to provide contextual completion based on your position in the syntax tree. Completion Code Tag Completion Support Love what I do? Want to see more get done faster? Want to support future projects of mine? Any sort of support is always heartwarming and fuels the urge to keep going [?]. You can support me here: * Buy me a coffee! * Support on LiberaPay * Donate directly via paypal * Support me on Patreon Credits Massive shoutouts to the people who supported the project! These are: * Binx, for making that gorgeous logo for free! + Github + Reddit * bandithedoge, for recreating the logo in svg form! + Website + Github + YouTube About Modernity meets insane extensibility. The future of organizing your life in Neovim. Topics lua neovim organization org-mode neovim-plugin nvim-plugin Resources Readme License GPL-3.0 License Sponsor this project * liberapay liberapay.com/vhyrro * https://buymeacoffee.com/vhyrro Contributors 2 * @vhyrro vhyrro * @RaafatTurki RaafatTurki Raafat Turki Languages * Lua 99.0% * Scheme 1.0% * (c) 2021 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.