feat!: drop makefile support, norg parser

Norg install_info and queries are maintained by neorg.

All other parsers are compatible with C++11, so fix that as standard.
(Can be bumped if all supported platforms support C++14.)

Remove Makefile support, as it's no longer needed.
This commit is contained in:
Christian Clason 2023-06-08 13:25:31 +02:00
parent c5152f3e83
commit f0a984347c
7 changed files with 3 additions and 81 deletions

View file

@ -159,6 +159,7 @@ If Neovim does not detect your language's filetype by default, you can use [Neov
You can also skip step 2 and use `:TSInstallFromGrammar zimbu` to install directly from a `grammar.js` in the top-level directory specified by `url`.
Once the parser is installed, you can update it (from the latest revision of the `main` branch if `url` is a Github repository) with `:TSUpdate zimbu`.
**Note:** Parsers using external scanner need to be written in C. C++ scanners are no longer supported.
## Adding queries

View file

@ -168,7 +168,6 @@ jsx (queries only)[^jsx] | | `HFIJ ` | | | @steelsojka
[nim_format_string](https://github.com/aMOPel/tree-sitter-nim-format-string) | community | `H  J ` | | | @aMOPel
[ninja](https://github.com/alemuller/tree-sitter-ninja) | | `HFI  ` | | | @alemuller
[nix](https://github.com/cstrahan/tree-sitter-nix) | | `HF JL` | | | @leo60228
[norg](https://github.com/nvim-neorg/tree-sitter-norg) | unstable | `     ` | | | @JoeyGrajciar, @vhyrro
[nqc](https://github.com/amaanq/tree-sitter-nqc) | stable | `HFIJL` | | | @amaanq
[objc](https://github.com/amaanq/tree-sitter-objc) | | `HFIJL` | | | @amaanq
[objdump](https://github.com/ColinKennedy/tree-sitter-objdump) | community | `H  J ` | | | @ColinKennedy

View file

@ -7,7 +7,6 @@ This document lists the planned and finished changes in this rewrite towards [Nv
- [ ] **`query_predicates.lua`:** upstream/remove
- [ ] **`parsers.lua`:** assign tiers
- [ ] **`parsers.lua`:** modularize?
- [ ] **`install.lua`:** drop norg (and makefile); document c++11 requirement
- [ ] **`locals.lua`:** move to `nvim-treesitter-refactor`?
- [ ] **update-lockfile:** allow specifying version in addition to commit hash (for Tier 1)
- [ ] **update-lockfile:** one commit per parser/tier?

View file

@ -527,9 +527,6 @@
"nix": {
"revision": "cfc53fd287d23ab7281440a8526c73542984669b"
},
"norg": {
"revision": "d89d95af13d409f30a6c7676387bde311ec4a2c8"
},
"nqc": {
"revision": "14e6da1627aaef21d2b2aa0c37d04269766dcc1d"
},

View file

@ -391,19 +391,8 @@ end
---@param compile_location string
---@return SystemCompleted
local function do_compile(repo, cc, compile_location)
local make = M.select_executable({ 'gmake', 'make' })
local cmd --- @type string[]
if cc:find('cl$') or cc:find('cl.exe$') or not repo.use_makefile or iswin or not make then
local args = vim.tbl_flatten(select_compiler_args(repo, cc))
cmd = vim.list_extend({ cc }, args)
else
cmd = {
make,
'--makefile=' .. M.get_package_path('scripts', 'compile_parsers.makefile'),
'CC=' .. cc,
}
end
local args = vim.tbl_flatten(select_compiler_args(repo, cc))
local cmd = vim.list_extend({ cc }, args)
return system(cmd, { cwd = compile_location })
end

View file

@ -6,7 +6,6 @@
---@field generate_requires_npm boolean|nil
---@field requires_generate_from_grammar boolean|nil
---@field location string|nil
---@field use_makefile boolean|nil
---@class ParserInfo
---@field install_info InstallInfo
@ -1583,16 +1582,6 @@ M.configs = {
maintainers = { '@leo60228' },
},
norg = {
install_info = {
url = 'https://github.com/nvim-neorg/tree-sitter-norg',
files = { 'src/parser.c', 'src/scanner.cc' },
use_makefile = true,
},
maintainers = { '@JoeyGrajciar', '@vhyrro' },
tier = 4,
},
nqc = {
install_info = {
url = 'https://github.com/amaanq/tree-sitter-nqc',

View file

@ -1,52 +0,0 @@
CFLAGS ?= -Os -std=c99 -fPIC
CXX_STANDARD ?= c++14
CXXFLAGS ?= -Os -std=$(CXX_STANDARD) -fPIC
LDFLAGS ?=
SRC_DIR ?= ./src
DEST_DIR ?= ./dest
ifeq ($(OS),Windows_NT)
SHELL := powershell.exe
.SHELLFLAGS := -NoProfile -command
CP := Copy-Item -Recurse -ErrorAction SilentlyContinue
MKDIR := New-Item -ItemType directory -ErrorAction SilentlyContinue
TARGET := parser.dll
rmf = Write-Output $(1) | foreach { if (Test-Path $$_) { Remove-Item -Force } }
else
CP := cp
MKDIR := mkdir -p
TARGET := parser.so
rmf = rm -rf $(1)
endif
ifneq ($(wildcard $(SRC_DIR)/*.cc),)
LDFLAGS += -lstdc++
endif
OBJECTS := parser.o
ifneq ($(wildcard $(SRC_DIR)/scanner.*),)
OBJECTS += scanner.o
endif
all: $(TARGET)
$(TARGET): $(OBJECTS)
$(CC) $(OBJECTS) -o $(TARGET) -shared $(LDFLAGS)
%.o: $(SRC_DIR)/%.c
$(CC) -c $(CFLAGS) -I$(SRC_DIR) -o $@ $<
%.o: $(SRC_DIR)/%.cc
$(CC) -c $(CXXFLAGS) -I$(SRC_DIR) -o $@ $<
clean:
$(call rmf,$(TARGET) $(OBJECTS))
$(DEST_DIR):
@$(MKDIR) $(DEST_DIR)
install: $(TARGET) $(DEST_DIR)
$(CP) $(TARGET) $(DEST_DIR)/
.PHONY: clean