{"id":14981759,"url":"https://github.com/jacquesg/p5-neovim-ext","last_synced_at":"2026-02-24T02:32:07.985Z","repository":{"id":56832781,"uuid":"219564295","full_name":"jacquesg/p5-Neovim-Ext","owner":"jacquesg","description":null,"archived":false,"fork":false,"pushed_at":"2023-01-15T22:03:23.000Z","size":70,"stargazers_count":12,"open_issues_count":4,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-02T00:23:55.796Z","etag":null,"topics":["neovim","neovim-clients","perl","perl-module","perl5"],"latest_commit_sha":null,"homepage":null,"language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jacquesg.png","metadata":{"files":{"readme":"README.md","changelog":"Changes","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-11-04T18:02:34.000Z","updated_at":"2024-12-02T17:50:18.000Z","dependencies_parsed_at":"2023-02-10T00:00:30.550Z","dependency_job_id":null,"html_url":"https://github.com/jacquesg/p5-Neovim-Ext","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacquesg%2Fp5-Neovim-Ext","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacquesg%2Fp5-Neovim-Ext/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacquesg%2Fp5-Neovim-Ext/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacquesg%2Fp5-Neovim-Ext/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jacquesg","download_url":"https://codeload.github.com/jacquesg/p5-Neovim-Ext/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238795458,"owners_count":19531747,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["neovim","neovim-clients","perl","perl-module","perl5"],"created_at":"2024-09-24T14:04:12.418Z","updated_at":"2025-10-29T08:33:47.146Z","avatar_url":"https://github.com/jacquesg.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NAME\n\nNeovim::Ext - Perl bindings for neovim\n\n# DESCRIPTION\n\nPerl interface to Neovim\n\n# FUNCTIONS\n\n## from\\_session( $session )\n\nCreate a new Nvim instance for `$session`.\n\n## start\\_host( $session )\n\nPromote the current process into a perl plugin host for Nvim. It starts the event\nloop for `$session`, listening for Nvim requests and notifications, and also\nregisters Nvim commands for loading/unloading perl plugins.\n\n# METHODS\n\n## call( $name, @args )\n\nCall a vimscript function.\n\n## chdir( $path )\n\nSet the Nvim current directory.\n\n## close( )\n\nClose the Nvim session.\n\n## command( $string, @args)\n\nExecute a single ex command.\n\n## command\\_output( )\n\nExecute a single ex command and return the output.\n\n## err\\_write( $msg )\n\nPrint `$msg` as an error message. Does not append a newline and won't be displayed\nif a linefeed is not sent.\n\n## err\\_writeln( $msg )\n\nPrint `$msg` as an error message. Appends a newline so the buffer is flushed\nand displayed.\n\n## eval( $string, @args )\n\nEvaluate a vimscript expression\n\n## exec\\_lua( $code, @args )\n\nExecute lua code.\n\n## feedkeys ($keys, \\[$options, $escape\\_csi\\])\n\nPush `$keys`\u003c to Nvim user input buffer. Options can be a string with the following\ncharacter flags:\n\n- \"m\"\n\n    Remap keys. This is the default.\n\n- \"n\"\n\n    Do not remap keys.\n\n- \"t\"\nHandle keys as if typed; otherwise they are handled as if coming from a mapping. This\nmatters for undo, opening folds, etc.\n\n## foreach\\_rtp( \\\\\u0026cb )\n\nInvoke `\\\u0026cb` for each path in 'runtimepath'.\n\n## input( $bytes )\n\nPush `$bytes` to Nvim's low level input buffer. Unliked `feedkeys()` this uses the\nlowest level input buffer and the call is not deferred.\n\n## list\\_runtime\\_paths( )\n\nReturn a list reference of paths contained in the 'runtimepath' option.\n\n## list\\_uis( )\n\nGets a list of attached UIs.\n\n## next\\_message( )\n\nBlock until a message (request or notification) is available. If any messages were\npreviously enqueued, return the first in the queue. If not, the event loop is run\nuntil one is received.\n\n## out\\_write( $msg, @args )\n\nPrint `$msg` as a normal message. The message is buffered and wont display\nuntil a linefeed is sent.\n\n## quit( \\[$quit\\_command\\])\n\nSend a quit command to Nvim. By default, the quit command is `qa!` which will make\nNvim quit without saving anything.\n\n## replace\\_termcodes( $string, \\[$from\\_part, $do\\_lt, $special\\] )\n\nReplace any terminal code strings by byte sequences. The returned sequences are Nvim's\ninternal representation of keys. The returned sequences can be used as input to\n`feekeys()`.\n\n## request( $name, @args)\n\nSend an API request or notification to Nvim.\n\n## run\\_loop($request\\_cb, $notification\\_cb, \\[$setup\\_cb, $err\\_cb\\] )\n\nRun the event loop to receive requests and notifications from Nvim. This should not\nbe called from a plugin running in the host, which already runs the loop and dispatches\nevents to plugins.\n\n## stop\\_loop( )\n\nStop the event loop.\n\n## strwidth( $string )\n\nReturn the number of display cells `$string` occupies.\n\n## subscribe( $event )\n\nSubscribe to an Nvim event.\n\n## unsubscribe( $event )\n\nUnsubscribe from an Nvim event.\n\n# AUTHOR\n\nJacques Germishuys \u003cjacquesg@striata.com\u003e\n\n# LICENSE AND COPYRIGHT\n\nCopyright 2019 Jacques Germishuys.\n\nThis program is free software; you can redistribute it and/or modify it\nunder the terms of either: the GNU General Public License as published\nby the Free Software Foundation; or the Artistic License.\n\nSee http://dev.perl.org/licenses/ for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacquesg%2Fp5-neovim-ext","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjacquesg%2Fp5-neovim-ext","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacquesg%2Fp5-neovim-ext/lists"}