Comments (3)
I could also imagine that simply skipping over balanced nested curly braces would work to extract the "expressions", given that expressions here should be fairly simple. So if you parse the template and hit {
you continue looking for {
and matching }
s up until you found the }
that matches the outermost {
. But that too should be noted, then.
function parseLogpointTemplate(template: string) {
const parts: string[][] = [[]];
let depth = 0;
for (const token of template.match(/(\{|\}|[^{}]+)/g)) {
if (token === '{') {
if (depth++ === 0) {
parts.push([]);
}
parts[parts.length - 1].push(token);
} else if (token === '}') {
parts[parts.length - 1].push(token);
if (depth > 0) {
depth--;
if (!depth) {
parts.push([]);
}
}
} else {
parts[parts.length - 1].push(token);
}
}
return parts.map(x => x.join("")).map(x => {
return x.startsWith('{') && x.endsWith('}') ? {
expr: x.substring(1, x.length - 2).trim()
} : {
text: x
}
});
}
const parts = parseLogpointTemplate(
'this is { $h->{value}{value} } the value'
);
from debug-adapter-protocol.
@hoehrmann what exactly are you proposing to do here?
from debug-adapter-protocol.
This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!
from debug-adapter-protocol.
Related Issues (20)
- Extend `StackFrame` to support longer description than `name` HOT 2
- Does `setBreakpoints` trigger multiple `breakpoint` events? HOT 2
- Protocol extension points HOT 3
- Lifetime of variableReference after setVariable HOT 3
- Clarify meaning of "system process" HOT 7
- Example on how to launch debug adapter HOT 3
- Standardise the ability for client/DA to use URIs in place of file paths (enabling debugging of non-file:/ sources) HOT 17
- Add additional data fields for breakpoints HOT 11
- Evaluation time out HOT 1
- Clarifications for setExceptionBreakpoints HOT 6
- Ordering of launch, setBreakpoints, and configurationDone HOT 3
- Add a "type" field for SourceBreakpoints HOT 16
- Add a `bytes` range to the DataBreakpointInfo Request HOT 14
- Clarification of the meaning of '?' in a request HOT 1
- Is it always allowed to send requests that control execution? HOT 3
- Proposal: Add new reason `finished` or `stepOut` and optional field `returnValue` to `Stopped Event` HOT 6
- OutputEvent variablesReference lifetime clarification HOT 1
- How does the debugger notify dap client that a breakpoint is disabled? HOT 8
- Proposal: add a document location to the evaluate request for the 'hover' variant. HOT 16
- Help needed : Disassembly a C/C++ frame (function) HOT 1
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 debug-adapter-protocol.