commit fceab2f88635eeb128477264110b04be898fa2cc
parent 34fb7bfd1bece8f4ca1ece5b9f220cbeb43a0d08
Author: Tomas Nemec <nemi@skaut.cz>
Date: Fri, 16 Dec 2022 12:03:37 +0100
update
Diffstat:
6 files changed, 130 insertions(+), 244 deletions(-)
diff --git a/compiler/lua.lua b/compiler/lua.lua
@@ -1,6 +1,6 @@
-- Vim compiler file
-- Compiler: Lua
--- Maintainer: Tomas Nemec <owl@tms.dev>
+-- Maintainer: Tomas Nemec <owl@gtms.dev>
-- Last Change: 18.10.2022
if vim.fn.exists('current_compiler') then
return
diff --git a/lua/tms/ft/dart/package.lua b/lua/tms/ft/dart/package.lua
@@ -16,7 +16,7 @@ end
function M.config()
local config_path = M.config_path()
- if vim.fn.filereadable(config_path) then
+ if vim.fn.filereadable(config_path) == 1 then
local content = readfile(config_path)
local json = vim.fn.json_decode(content)
if not json or not json.packages then
@@ -45,20 +45,37 @@ function M.packages()
for _, package in pairs(config.packages) do
local uri = package.rootUri
local package_uri = package.packageUri
- local lib_dir
+ local lib_dir, root_dir
if string.find(uri, '^file:/') then
uri = string.gsub(uri, '^file://', '', 1)
- lib_dir = vim.fn.resolve(uri .. '/' .. package_uri)
+ root_dir = vim.fn.resolve(uri)
+ lib_dir = vim.fn.resolve(root_dir .. '/' .. package_uri)
else
- lib_dir = vim.fn.resolve(dart_tool_dir .. '/' .. uri .. '/' .. package_uri)
+ root_dir = vim.fn.resolve(dart_tool_dir .. '/' .. uri)
+ lib_dir = vim.fn.resolve(root_dir .. '/' .. package_uri)
end
- packages_map[package.name] = lib_dir
+ packages_map[package.name] = { root = root_dir, lib = lib_dir }
end
return packages_map
end
+function M.package_name()
+ local file = io.open('pubspec.yaml', 'r')
+ if not file then
+ return nil
+ end
+ local firstLine = file:read('*l')
+ file:close()
+ local name = string.match(firstLine, 'name: (.*)')
+ if not name then
+ return nil
+ end
+ return name
+
+end
+
function M.package_path(uri)
if not string.find(uri, 'package:') then
return nil
@@ -73,14 +90,14 @@ function M.package_path(uri)
return nil
end
- local package_lib = packages[package_name]
- if not package_lib then
+ local package_paths = packages[package_name]
+ if not package_paths then
vim.notify('no package mapping for ' .. package_name, vim.log.levels.ERROR)
return nil
end
+ local package_lib = package_paths.lib
-- HACK localhost%25 - wtf?
- print(package_lib)
package_lib = string.gsub(package_lib, 'localhost%%25', 'localhost%%')
local package_lib_escaped = string.gsub(package_lib, '%%', '%%%%')
diff --git a/plugin/qftf.lua b/plugin/qftf.lua
@@ -2,9 +2,9 @@ function _G.qftf(info)
local items
local ret = {}
if info.quickfix == 1 then
- items = vim.fn.getqflist({id = info.id, items = 0}).items
+ items = vim.fn.getqflist({ id = info.id, items = 0 }).items
else
- items = vim.fn.getloclist(info.winid, {id = info.id, items = 0}).items
+ items = vim.fn.getloclist(info.winid, { id = info.id, items = 0 }).items
end
local limit = 31
local fname_fmt1, fname_fmt2 = '%-' .. limit .. 's', '…%.' .. (limit - 1) .. 's'
@@ -41,4 +41,4 @@ function _G.qftf(info)
return ret
end
-vim.o.qftf = '{info -> v:lua._G.qftf(info)}'
+-- vim.opt.qftf = '{info -> v:lua._G.qftf(info)}'
diff --git a/plugin/trun.lua b/plugin/trun.lua
@@ -1,6 +1,6 @@
-- Add this to your nvim folder to `plugin/trun.lua`.
--
--- use `:Trunqf <name>` to fill quickfix list with lines after last
+-- use `:Trun <name>` to fill quickfix list with lines after last
-- success status. It has autocompletion for running truns, press <tab> to list
-- those.
--
@@ -9,11 +9,14 @@
-- added as second line to status file. viz->examples/handler_tmp_output_file.lua
--
-- returns list of running truns
-local complete = function()
+local function trun_list()
local status_dir_def = os.getenv('XDG_CACHE_HOME') .. '/trun'
local status_dir = os.getenv('TRUN_STATUS_DIR') or status_dir_def
local ls = io.popen('ls ' .. status_dir)
local truns = {}
+ if not ls then
+ return truns
+ end
for trun in ls:lines() do
local name = trun:match('(.*)%..*')
table.insert(truns, name)
@@ -23,7 +26,7 @@ end
-- add trun to quickfix list
-- it needs to have its tempfile for output
-local to_qf = function(name)
+local function trun_to_qf(name)
if not name then
return
end
@@ -31,37 +34,75 @@ local to_qf = function(name)
-- Depends on `trun-status` viz->tools/trun-status.lua
local handle = io.popen('trun-status ' .. name)
local o = {}
+ if not handle then
+ return o
+ end
for line in handle:lines() do
table.insert(o, line)
end
if #o == 0 then
- print('No running trun for "' .. name .. '"')
+ vim.notify('No running trun for "' .. name .. '"', vim.log.levels.INFO)
return
end
-- edit this if path to tmpfile(errorfile) is on another line
local errorfile = o[2]
if errorfile then
+ local package_name = require('tms.ft.dart.package').package_name()
+ local packages_paths = require('tms.ft.dart.package').packages()
local errfile = io.open(errorfile, 'r')
local lines = {}
+ if not errfile then
+ return
+ end
for line in errfile:lines() do
+ if string.find(line, 'Starting Build') then
+ lines = {}
+ end
+ -- TODO(tms) 16.12.22: translate
+ if package_name and packages_paths then
+ local package_root = packages_paths[package_name].root
+ line = string.gsub(line, '^.-:%d+:%d+:',
+ package_root .. '/' .. '.dart_tool/build/generated/' .. package_name .. '/%0')
+ line = string.gsub(line, 'asset:(.-)/(.-):', function(package, path)
+ local root = packages_paths[package].root
+ return root .. '/' .. path
+ end)
+ end
+
table.insert(lines, line)
end
- vim.fn.setqflist({}, ' ', {lines = lines})
- vim.cmd [[ copen ]]
- vim.cmd [[ normal G ]]
+ vim.fn.setqflist({}, ' ', {
+ lines = lines,
+ efm = [[%EErrors in %.%#,%Zline %l\, column %c of %f %m,%f:%l:%c: %t%*[^:]: %m.,%-G%.%#]],
+ })
+ if #vim.fn.getqflist() > 0 then
+ vim.cmd [[ copen ]]
+ else
+ vim.notify('no errors found', vim.log.levels.INFO)
+ end
else
- print('Trun for "' .. name .. '" does not have tmp file')
+ vim.notify('Trun for "' .. name .. '" does not have tmp file', vim.log.levels.INFO)
return
end
end
+local function select()
+ local list = trun_list()
+ if #list == 0 then
+ vim.notify('no truns', vim.log.levels.INFO)
+ end
+ vim.ui.select(list, { prompt = 'Select trun:' }, function(trun)
+ trun_to_qf(trun)
+ end)
+end
+
-- Make functions globally accessible
-_G.Trun = {complete = complete, qf = to_qf}
+_G.Trun = { complete = trun_list }
--- TODO nvim_create_user_command
-vim.cmd [[
-fun! TrunComplete(A,L,P)
- return v:lua.Trun.complete()
-endfun
-]]
-vim.cmd [[command! -nargs=1 -complete=customlist,TrunComplete Trunqf lua Trun.qf("<args>")]]
+vim.api.nvim_create_user_command('Trun', function(opts)
+ if #opts.fargs == 0 then
+ select()
+ else
+ trun_to_qf(opts.fargs[1])
+ end
+end, { nargs = '?', complete = 'customlist,v:lua.Trun.complete' })
diff --git a/test/efm_bug.lua b/test/efm_bug.lua
@@ -11,7 +11,7 @@ NEW compiler v1.1
(2,2) warning: variable 'x' not defined
(67,3) warning: 's' already defined
]]
-local efm = '%+P[%f],(%l\\,%c)%*[ ]%t%*[^:]: %m,%-Q'
+local efm = [[%P[%f],(%l\,%c)%*[ ]%t%*[^:]: %m,%Q]]
-- list of lines
local lines = {}
@@ -20,5 +20,4 @@ for line in string.gmatch(data, '([^\n]+)') do
end
-- fill qf
-vim.fn.setqflist({}, 'r', {lines = lines, efm = efm})
-
+vim.fn.setqflist({}, 'r', { lines = lines, efm = efm })
diff --git a/test/test.lua b/test/test.lua
@@ -1,221 +1,50 @@
local data = {}
-data[1] = {
- -- {{{ 1
- data = [[
-[INFO] Generating build script...
-[INFO] Generating build script completed, took 244ms
-
-[INFO] Setting up file watchers...
-[INFO] Setting up file watchers completed, took 7ms
-
-[INFO] Waiting for all file watchers to be ready...
-[INFO] Waiting for all file watchers to be ready completed, took 120ms
-
-[INFO] Initializing inputs
-[INFO] Reading cached asset graph...
-[INFO] Reading cached asset graph completed, took 289ms
-
-[INFO] Checking for updates since last build...
-[INFO] Checking for updates since last build completed, took 464ms
-
-[INFO] Running build...
-[INFO] 2.0s elapsed, 1/2 actions completed.
-[SEVERE] angular:angular on lib/vc.dart:
-
-This builder requires Dart inputs without syntax errors.
-However, package:vc/vc.dart (or an existing part) contains the following errors.
-vc.dart:20:10: Expected to find ';'.
-
-Try fixing the errors and re-running the build.
-
-[SEVERE] build_web_compilers:ddc on lib/vc.ddc.module:
-Error compiling dartdevc module:vc|lib/vc.unsound.ddc.js
-
-packages/vc/vc.dart:20:10: Error: Expected ';' after this.
- Player player
- ^^^^^^
-
-[SEVERE] build_web_compilers:ddc on lib/vc.ddc.module:
-Error creating vc|lib/vc.unsound.ddc.dill
-Error creating kernel summary for module:vc|lib/vc.unsound.ddc.dill
-
-Response:--dart-sdk-summary=file:///home/tms/.dswitch/channels/stable/versions/2.10.3/dart-sdk/lib/_internal/ddc_sdk.dill --output=/tmp/scratch_spaceTQAQPD/packages/vc/vc.unsound.ddc.dill --packages-file=org-dartlang-app:///.dart_tool/package_config.json --multi-root-scheme=org-dartlang-app --exclude-non-sources --summary-only --target=ddc --libraries-file=file:///home/tms/.dswitch/channels/stable/versions/2.10.3/dart-sdk/lib/libraries.json --reuse-compiler-result --use-incremental-compiler --used-inputs=/tmp/kernel_builder_KAOIXX/used_inputs.txt --input-summary=org-dartlang-app:///packages/video_player/video_player.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular/angular.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/video_player/plugins.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/ng_core/core.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/video_player/messages.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/ng_core/events.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/video_player/src/control.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular/core.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular/src/bootstrap/modules.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular/src/core/change_detection/pipe_transform.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/video_player/src/ng_plugins/progress_bar.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/ng_core/src/collator.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/ng_core/src/cache/local_cache.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/ng_core/src/cache/local_storage_cache.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/ng_core/src/progress_controller.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/ng_core/src/events/key_event_handler.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/ng_core/src/events/tap_event_handler.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/ng_core/src/events/mouse_track_container.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/logging/logging.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular_compiler/v1/src/metadata.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular/src/core/application_tokens.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/meta/meta.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular/di.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/meta/dart2js.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular_compiler/v1/src/metadata/di_tokens.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular/di.template.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/intl/intl.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular/src/core/change_detection/pipe_transform.template.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular/core.template.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/js/js_util.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular/src/core/application_tokens.template.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/js/js.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/collection/collection.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/stack_trace/src/chain.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular_forms/angular_forms.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/vector_math/vector_math.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/ng_core/js/window.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular_compiler/v1/src/metadata/typed.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular_compiler/v1/src/metadata/change_detection_link.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular_compiler/v1/src/metadata/di_providers.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular_compiler/v1/src/metadata/view_type.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular_compiler/v1/src/metadata/di_arguments.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular_compiler/v1/src/metadata/change_detection_constants.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular_compiler/v1/src/metadata/lifecycle_hooks.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular_compiler/v1/src/metadata/view.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular_compiler/v1/src/metadata/visibility.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular_compiler/v1/src/metadata/directives.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular_compiler/v1/src/metadata/runtime_shim.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/intl/src/plural_rules.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/intl/number_symbols_data.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/intl/date_symbols.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/intl/number_symbols.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/collection/src/algorithms.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/collection/src/utils.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/collection/src/iterable_zip.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/collection/src/comparators.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/collection/src/priority_queue.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/collection/src/canonicalized_map.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/path/path.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/angular_forms/src/directives.unsound.ddc.dill --input-summary=org-dartlang-app:///packages/vector_math/hash.unsound.ddc.dill --no-sound-null-safety --source=package:vc/vc.dart
-org-dartlang-app:///packages/vc/vc.dart:20:10: Error: Expected ';' after this.
- Player player
- ^^^^^^
-
-
-[SEVERE] build_web_compilers:ddc on web/main.ddc.module:
-Unable to find modules for some sources, this is usually the result of either a
-bad import, a missing dependency in a package (or possibly a dev_dependency
-needs to move to a real dependency), or a build failure (if importing a
-generated file).
-
-Please check the following imports:
-
-`import 'package:vc/vc.template.dart' as ng;` from vc|web/main.dart at 2:1
-
-[SEVERE] build_web_compilers:entrypoint on web/main.dart:
-Unable to find modules for some sources, this is usually the result of either a
-bad import, a missing dependency in a package (or possibly a dev_dependency
-needs to move to a real dependency), or a build failure (if importing a
-generated file).
-
-Please check the following imports:
-
-`import 'package:vc/vc.template.dart' as ng;` from vc|web/main.dart at 2:1
-
-[INFO] Running build completed, took 3.1s
-
-[INFO] Caching finalized dependency graph...
-[INFO] Caching finalized dependency graph completed, took 446ms
-
-[SEVERE] Failed after 3.5s
-Serving `web` on http://localhost:8080
-[INFO] Terminating. No further builds will be scheduled
-
-[INFO] Builds finished. Safe to exit
-
-]],
- -- }}}
- efm = '%E[SEVERE] angular:angular on %f:,%Z%.%#:%l:%c: %m,%C%.%#,%E[SEVERE] build_web_compilers:ddc on %.%#:,%Zpackages/%f:%.%# Error: %m',
-}
-data[2] = {
- -- {{{ 2
- data = [[
-error on test.lua:
-asdfsda
-vc.dart:20:10: Expected to find ';'.
+data = {
+ {
+ -- {{{ 1
+ data = [[
+[SEVERE] ngdart on example/app_component.dart:
+An error occurred compiling third_party/dart/ng_table/example/app_component.dart:
+Errors in asset:ng_table/example/app_component.html while compiling component AppComponent:
+line 3, column 9 of asset:ng_table/example/app_component.html: Unterminated mustache
+ ╷
+3 │ <th>{{test}</th>
+ │ ^^
+ ╵
+line 3, column 5 of asset:ng_table/example/app_component.html: Cannot find matching close element to this
+ ╷
+3 │ <th>{{test}</th>
+ │ ^^^^
+ ╵
+[SEVERE] ngdart on example/app_component.dart:
]],
- -- }}}
- efm = '%Eerror on %f:,%Z%.%#:%l:%c: %m,%C%.%#,',
-}
-data[3] = {
- -- {{{ 3
- data = [[
-[INFO] Caching finalized dependency graph completed, took 213ms
-[SEVERE] build_web_compilers:ddc on lib/vc.template.ddc.module (cached):
-Error compiling dartdevc module:vc|lib/vc.template.unsound.ddc.js
-
-packages/vc/vc.template.dart:127:64: Error: The getter 'tet' isn't defined for the class 'VC'.
- - 'VC' is from 'package:vc/vc.dart' ('packages/vc/vc.dart').
-Try correcting the name to the name of an existing getter, or defining a getter or field named 'tet'.
- this._textBinding_17.updateText(import14.interpolate0(_ctx.tet));
- ^^^
-
-
-[SEVERE] build_web_compilers:entrypoint on web/main.dart (cached):
-
-AssetNotFoundException: vc|lib/vc.template.unsound.ddc.js.metadata
-[SEVERE] Failed after 438ms
-[SEVERE] build_web_compilers:ddc on web/main.ddc.module:
-Unable to find modules for some sources, this is usually the result of either a
-bad import, a missing dependency in a package (or possibly a dev_dependency
-needs to move to a real dependency), or a build failure (if importing a
-generated file).
-
-Please check the following imports:
-
-`import 'package:vc/vc.template.dart' as ng;` from vc|web/main.dart at 2:1
-
-[SEVERE] build_web_compilers:entrypoint on web/main.dart:
-Unable to find modules for some sources, this is usually the result of either a
-bad import, a missing dependency in a package (or possibly a dev_dependency
-needs to move to a real dependency), or a build failure (if importing a
-generated file).
-
-Please check the following imports:
-
-`import 'package:vc/vc.template.dart' as ng;` from vc|web/main.dart at 2:1
-
-[INFO] Running build completed, took 3.0s
-[INFO] Caching finalized dependency graph completed, took 229ms
-]],
- -- }}}
- efm = '%E[SEVERE] build_web_compilers:ddc on %.%#:,%Zpackages/%f:%.%# Error: %m,%C%.%#',
-}
-data[4] = {
- -- {{{ 4
- data = [[
-[SEVERE] angular:angular on lib/vc.dart:
-
-This builder requires Dart inputs without syntax errors.
-However, package:vc/vc.dart (or an existing part) contains the following errors.
-vc.dart:20:10: Expected to find ';'.
-
-Try fixing the errors and re-running the build.
-
-[SEVERE] build_web_compilers:ddc on lib/vc.ddc.module:
-Error compiling dartdevc module:vc|lib/vc.unsound.ddc.js
-
-packages/vc/vc.dart:20:10: Error: Expected ';' after this.
- Player player
- ^^^^^^
-
-[SEVERE] build_web_compilers:ddc on lib/vc.template.ddc.module (cached):
-Error compiling dartdevc module:vc|lib/vc.template.unsound.ddc.js
-
-packages/vc/vc.template.dart:127:64: Error: The getter 'tet' isn't defined for the class 'VC'.
- - 'VC' is from 'package:vc/vc.dart' ('packages/vc/vc.dart').
-Try correcting the name to the name of an existing getter, or defining a getter or field named 'tet'.
- this._textBinding_17.updateText(import14.interpolate0(_ctx.tet));
- ^^^
-
-[SEVERE] angular:angular on lib/p/progress_bar.dart:
-
-This builder requires Dart inputs without syntax errors.
-However, package:vc/p/progress_bar.dart (or an existing part) contains the following errors.
-progress_bar.dart:12:1: A function body must be provided.
-
-Try fixing the errors and re-running the build.
-
-[SEVERE] angular:angular on lib/vc.dart:
-
-This builder requires Dart inputs without syntax errors.
-However, package:vc/vc.dart (or an existing part) contains the following errors.
-vc.dart:55:1: Expected a method, getter, setter or operator declaration.
-vc.dart:53:5: The name of a constructor must match the name of the enclosing class.
-vc.dart:53:5: A function body must be provided.
-And 2 more...
-
-Try fixing the errors and re-running the build.
-
-]],
- -- }}}
- efm = '%+P[SEVERE] angular:angular on %f:,%.%#:%l:%c: %m,%-Q',
-}
-data[5] = {
- --- {{{
- data = [[
-file:lib/vc.dart
-vc.dart:55:1: Expected a method, getter, setter or operator declaration.
-vc.dart:53:5: The name of a constructor must match the name of the enclosing class.
-vc.dart:53:5: A function body must be provided.
-]],
- -- }}}
- efm = '%+Pfile:%f,vc.dart:%l:%c: %m',
-}
-data[6] = {
- -- {{{
- data = [[
-[a1.tt]
-(1,17) error: ';' missing
-(21,2) warning: variable 'z' not defined
-(67,3) error: end of file found before string ended
-
-[a2.tt]
-
-[a3.tt]
-NEW compiler v1.1
-(2,2) warning: variable 'x' not defined
-(67,3) warning: 's' already defined
+ -- }}}
+ efm = [[%EErrors in asset:%.%#,%Zline %l\, column %c of asset:%f: %m]],
+ },
+ {
+ -- {{{ 2
+ data = [[
+[INFO] Running build...
+[SEVERE] build_web_compilers:ddc on example/app_component.ddc.module:
+Error compiling dartdevc module:ng_table|example/app_component.sound.ddc.js
+
+example/app_component.template.dart:50:62: Error: The getter 'test' isn't defined for the class 'AppComponent'.
+ - 'AppComponent' is from 'example/app_component.dart'.
+Try correcting the name to the name of an existing getter, or defining a getter or field named 'test'.
+ this._textBinding_3.updateText(import9.interpolate0(_ctx.test)) /* REF:asset:ng_table/example/app_component.html:26:34 */;
+ ^^^^
+
+[WARNING] build_web_compilers:entrypoint on example/main.dart:
+Unable to read ng_table|example/app_component.sound.ddc.js, check your console or the `.dart_tool/build/generated/ng_table/example/app_component.sound.ddc.js.errors` log file.
+[SEVERE] build_web_compilers:entrypoint on example/main.dart:
]],
- -- }}}
- efm = '%+P[%f],(%l\\,%c)%*[ ]%t%*[^:]: %m,%-Q',
+ -- }}}
+ efm = '%f:%l:%c: %t%*[^:]: %m.',
+ },
}
-local ACTIVE = 6
+local ACTIVE = 2
local err = data[ACTIVE].data
local efm = data[ACTIVE].efm
@@ -224,7 +53,7 @@ local lines = {}
for line in string.gmatch(err, '([^\n]+)') do
table.insert(lines, line)
end
-vim.fn.setqflist({}, 'r', {lines = lines, efm = efm})
+vim.fn.setqflist({}, 'r', { lines = lines, efm = efm })
-- Only valid items
-- for _, item in ipairs(list.items) do