Comments (2)
Conditionally possible. If the replacement range is a single line, it can be implemented using augend.user
.
Simple implementation example:
local augend = require "dial.augend"
local common = require "dial.augend.common"
local js_func = {}
function js_func.find(line, cursor)
local range_func = common.find_pattern([[function%s*%b()%s*%b{}]])(line, cursor)
local range_arrow = common.find_pattern([[%b()%s*=>%s*%b{}]])(line, cursor)
if range_func == nil then
return range_arrow
end
if range_arrow == nil then
return range_func
end
if range_func.from < range_arrow.from then
return range_func
end
return range_arrow
end
function js_func.add(text, addend, cursor)
local _, _, params_func, body_func = text:find([[function%s*(%b())%s*(%b{})]])
if params_func ~= nil then
return { text = params_func .. " => " .. body_func, cursor = 1 }
end
local _, _, params_arrow, body_arrow = text:find([[(%b())%s*=>%s*(%b{})]])
if params_arrow ~= nil then
return { text = "function " .. params_arrow .. " " .. body_arrow, cursor = 1 }
end
end
local augend_js_func = augend.user.new(js_func)
require("dial.config").augends:register_group {
default = {
augend_js_func,
-- other augend configs,
}
}
from dial.nvim.
The problem is regarded as resolved and closed.
from dial.nvim.
Related Issues (20)
- Attempt to call method 'find' error HOT 2
- Visual block mode increment HOT 3
- Sumneko warning HOT 3
- Date decreasing issue HOT 5
- Workflow proposal HOT 14
- Provide a lua API instead of a string command HOT 1
- Feature request: Support for sequences HOT 2
- lazy.nvim: Failed to run config for dial.nvim: module 'dial' not found HOT 2
- Date pattern like %-m don't work. HOT 15
- Increment/decrement on fooBar1 while cursor is over the 1 HOT 3
- Plugin stopped working after first use? HOT 4
- `g<C-A>` not working HOT 5
- Please explain that you cannot configure your plugin with Vimscript HOT 2
- Buildin support for filetype specific augend? HOT 1
- default to normal <c-a> HOT 6
- Powerful alternatives HOT 2
- [question] difference between `gnormal` and `normal` HOT 2
- delimited hex and binary integer augend do not work HOT 2
- How to increase all the numbers in the line HOT 2
- The order of elements HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dial.nvim.