Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make syntect plugin (and rust plugin lib) 'global' #472

Closed
cmyr opened this issue Jan 11, 2018 · 0 comments · Fixed by #569
Closed

Make syntect plugin (and rust plugin lib) 'global' #472

cmyr opened this issue Jan 11, 2018 · 0 comments · Fixed by #569

Comments

@cmyr
Copy link
Member

cmyr commented Jan 11, 2018

Currently each document has its own copy of syntect running in a distinct process. This causes a delay before highlighting kicks in on a newly opened document, and increases overhead.

We have the concept of global plugins, but they aren't supported by the rust plugin lib.

A relevant question at this point, though: do we ever really need to support local plugins? @trishume's #374 outlines an approach to having at most a single process per plugin, which seems reasonable.

@cmyr cmyr mentioned this issue Mar 22, 2018
5 tasks
cmyr added a commit that referenced this issue Mar 23, 2018
This shouldn't be merged as is, but is a working demo of syntect running
globally; that is, using this plugin a single instance of syntect will
handle highlighting for all open views.

To use this with xi-mac, build-rust-xcode.sh will have to be modified so
that the `--features=global` flag is passed to cargo when compiling
syntect. Alternatively, you can modify syntect/src/main.rs to use the
global code path by default.

Known issues:
- none of the indentation code is ported, so autoindent won't work
- the idle handler has no concept of priority, so if a big file is being
processed in the background text entered in another buffer can end up
not being processed immediately. In some instances it may not be
processed at all.

If eventually merged, this closes #472.
cmyr added a commit that referenced this issue Mar 23, 2018
This shouldn't be merged as is, but is a working demo of syntect running
globally; that is, using this plugin a single instance of syntect will
handle highlighting for all open views.

To use this with xi-mac, build-rust-xcode.sh will have to be modified so
that the `--features=global` flag is passed to cargo when compiling
syntect. Alternatively, you can modify syntect/src/main.rs to use the
global code path by default.

Known issues:
- none of the indentation code is ported, so autoindent won't work
- the idle handler has no concept of priority, so if a big file is being
processed in the background text entered in another buffer can end up
not being processed immediately. In some instances it may not be
processed at all.

If eventually merged, this closes #472.
cmyr added a commit that referenced this issue Mar 23, 2018
This shouldn't be merged as is, but is a working demo of syntect running
globally; that is, using this plugin a single instance of syntect will
handle highlighting for all open views.

To use this with xi-mac, build-rust-xcode.sh will have to be modified so
that the `--features=global` flag is passed to cargo when compiling
syntect. Alternatively, you can modify syntect/src/main.rs to use the
global code path by default.

Known issues:
- none of the indentation code is ported, so autoindent won't work
- the idle handler has no concept of priority, so if a big file is being
processed in the background text entered in another buffer can end up
not being processed immediately. In some instances it may not be
processed at all.

If eventually merged, this closes #472.
cmyr added a commit that referenced this issue Mar 26, 2018
This shouldn't be merged as is, but is a working demo of syntect running
globally; that is, using this plugin a single instance of syntect will
handle highlighting for all open views.

To use this with xi-mac, build-rust-xcode.sh will have to be modified so
that the `--features=global` flag is passed to cargo when compiling
syntect. Alternatively, you can modify syntect/src/main.rs to use the
global code path by default.

Known issues:
- none of the indentation code is ported, so autoindent won't work
- the idle handler has no concept of priority, so if a big file is being
processed in the background text entered in another buffer can end up
not being processed immediately. In some instances it may not be
processed at all.

If eventually merged, this closes #472.
cmyr added a commit that referenced this issue Mar 26, 2018
This shouldn't be merged as is, but is a working demo of syntect running
globally; that is, using this plugin a single instance of syntect will
handle highlighting for all open views.

To use this with xi-mac, build-rust-xcode.sh will have to be modified so
that the `--features=global` flag is passed to cargo when compiling
syntect. Alternatively, you can modify syntect/src/main.rs to use the
global code path by default.

Known issues:
- none of the indentation code is ported, so autoindent won't work
- the idle handler has no concept of priority, so if a big file is being
processed in the background text entered in another buffer can end up
not being processed immediately. In some instances it may not be
processed at all.

If eventually merged, this closes #472.
cmyr added a commit that referenced this issue Mar 28, 2018
This shouldn't be merged as is, but is a working demo of syntect running
globally; that is, using this plugin a single instance of syntect will
handle highlighting for all open views.

To use this with xi-mac, build-rust-xcode.sh will have to be modified so
that the `--features=global` flag is passed to cargo when compiling
syntect. Alternatively, you can modify syntect/src/main.rs to use the
global code path by default.

Known issues:
- none of the indentation code is ported, so autoindent won't work
- the idle handler has no concept of priority, so if a big file is being
processed in the background text entered in another buffer can end up
not being processed immediately. In some instances it may not be
processed at all.

If eventually merged, this closes #472.
cmyr added a commit that referenced this issue Mar 28, 2018
This shouldn't be merged as is, but is a working demo of syntect running
globally; that is, using this plugin a single instance of syntect will
handle highlighting for all open views.

To use this with xi-mac, build-rust-xcode.sh will have to be modified so
that the `--features=global` flag is passed to cargo when compiling
syntect. Alternatively, you can modify syntect/src/main.rs to use the
global code path by default.

Known issues:
- none of the indentation code is ported, so autoindent won't work
- the idle handler has no concept of priority, so if a big file is being
processed in the background text entered in another buffer can end up
not being processed immediately. In some instances it may not be
processed at all.

If eventually merged, this closes #472.
cmyr added a commit that referenced this issue Mar 29, 2018
This shouldn't be merged as is, but is a working demo of syntect running
globally; that is, using this plugin a single instance of syntect will
handle highlighting for all open views.

To use this with xi-mac, build-rust-xcode.sh will have to be modified so
that the `--features=global` flag is passed to cargo when compiling
syntect. Alternatively, you can modify syntect/src/main.rs to use the
global code path by default.

Known issues:
- none of the indentation code is ported, so autoindent won't work
- the idle handler has no concept of priority, so if a big file is being
processed in the background text entered in another buffer can end up
not being processed immediately. In some instances it may not be
processed at all.

If eventually merged, this closes #472.
@cmyr cmyr closed this as completed in #569 Apr 3, 2018
cmyr added a commit that referenced this issue Apr 3, 2018
This shouldn't be merged as is, but is a working demo of syntect running
globally; that is, using this plugin a single instance of syntect will
handle highlighting for all open views.

To use this with xi-mac, build-rust-xcode.sh will have to be modified so
that the `--features=global` flag is passed to cargo when compiling
syntect. Alternatively, you can modify syntect/src/main.rs to use the
global code path by default.

Known issues:
- none of the indentation code is ported, so autoindent won't work
- the idle handler has no concept of priority, so if a big file is being
processed in the background text entered in another buffer can end up
not being processed immediately. In some instances it may not be
processed at all.

If eventually merged, this closes #472.
cmyr added a commit that referenced this issue Apr 3, 2018
This shouldn't be merged as is, but is a working demo of syntect running
globally; that is, using this plugin a single instance of syntect will
handle highlighting for all open views.

To use this with xi-mac, build-rust-xcode.sh will have to be modified so
that the `--features=global` flag is passed to cargo when compiling
syntect. Alternatively, you can modify syntect/src/main.rs to use the
global code path by default.

Known issues:
- none of the indentation code is ported, so autoindent won't work
- the idle handler has no concept of priority, so if a big file is being
processed in the background text entered in another buffer can end up
not being processed immediately. In some instances it may not be
processed at all.

If eventually merged, this closes #472.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant