mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-07 20:31:06 -05:00
Merge pull request #39 from sharelatex/ns-package-completer
Complete 'usepackage' with packages
This commit is contained in:
commit
333e411a75
3 changed files with 64 additions and 18 deletions
|
@ -1,10 +1,11 @@
|
||||||
define [
|
define [
|
||||||
"ide/editor/directives/aceEditor/auto-complete/CommandManager"
|
"ide/editor/directives/aceEditor/auto-complete/CommandManager"
|
||||||
"ide/editor/directives/aceEditor/auto-complete/EnvironmentManager"
|
"ide/editor/directives/aceEditor/auto-complete/EnvironmentManager"
|
||||||
|
"ide/editor/directives/aceEditor/auto-complete/PackageManager"
|
||||||
"ide/editor/directives/aceEditor/auto-complete/Helpers"
|
"ide/editor/directives/aceEditor/auto-complete/Helpers"
|
||||||
"ace/ace"
|
"ace/ace"
|
||||||
"ace/ext-language_tools"
|
"ace/ext-language_tools"
|
||||||
], (CommandManager, EnvironmentManager, Helpers) ->
|
], (CommandManager, EnvironmentManager, PackageManager, Helpers) ->
|
||||||
Range = ace.require("ace/range").Range
|
Range = ace.require("ace/range").Range
|
||||||
aceSnippetManager = ace.require('ace/snippets').snippetManager
|
aceSnippetManager = ace.require('ace/snippets').snippetManager
|
||||||
|
|
||||||
|
@ -35,6 +36,7 @@ define [
|
||||||
})
|
})
|
||||||
|
|
||||||
SnippetCompleter = new EnvironmentManager()
|
SnippetCompleter = new EnvironmentManager()
|
||||||
|
PackageCompleter = new PackageManager()
|
||||||
|
|
||||||
Graphics = @graphics
|
Graphics = @graphics
|
||||||
Preamble = @preamble
|
Preamble = @preamble
|
||||||
|
@ -126,10 +128,11 @@ define [
|
||||||
callback null, result
|
callback null, result
|
||||||
|
|
||||||
@editor.completers = [
|
@editor.completers = [
|
||||||
@suggestionManager,
|
@suggestionManager
|
||||||
SnippetCompleter,
|
SnippetCompleter
|
||||||
ReferencesCompleter,
|
PackageCompleter
|
||||||
LabelsCompleter,
|
ReferencesCompleter
|
||||||
|
LabelsCompleter
|
||||||
GraphicsCompleter
|
GraphicsCompleter
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ define [], () ->
|
||||||
'Lambda', 'Xi', 'Pi', 'Sigma', 'Upsilon', 'Phi', 'Psi', 'Omega'
|
'Lambda', 'Xi', 'Pi', 'Sigma', 'Upsilon', 'Phi', 'Psi', 'Omega'
|
||||||
]
|
]
|
||||||
singleArgumentCommands = [
|
singleArgumentCommands = [
|
||||||
'chapter', 'usepackage', 'section', 'label', 'textbf', 'subsection',
|
'chapter', 'section', 'label', 'textbf', 'subsection',
|
||||||
'vspace', 'cite', 'textit', 'documentclass', 'includegraphics', 'input',
|
'vspace', 'cite', 'textit', 'documentclass', 'includegraphics', 'input',
|
||||||
'emph','caption', 'ref', 'title', 'author', 'texttt', 'include',
|
'emph','caption', 'ref', 'title', 'author', 'texttt', 'include',
|
||||||
'hspace', 'bibitem', 'url', 'large', 'subsubsection', 'textsc', 'date',
|
'hspace', 'bibitem', 'url', 'large', 'subsubsection', 'textsc', 'date',
|
||||||
|
@ -172,7 +172,7 @@ define [], () ->
|
||||||
commands = parser.parse()
|
commands = parser.parse()
|
||||||
completions = []
|
completions = []
|
||||||
for command in commands
|
for command in commands
|
||||||
if command[0] not in rawCommands
|
if command[0] not in rawCommands and command[0] != "usepackage"
|
||||||
caption = "\\#{command[0]}"
|
caption = "\\#{command[0]}"
|
||||||
score = if caption == prefix then 99 else 50
|
score = if caption == prefix then 99 else 50
|
||||||
snippet = caption
|
snippet = caption
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
define () ->
|
||||||
|
packages = [
|
||||||
|
'inputenc', 'graphicx', 'amsmath', 'geometry', 'amssymb', 'hyperref',
|
||||||
|
'babel', 'color', 'xcolor', 'url', 'natbib', 'fontenc', 'fancyhdr',
|
||||||
|
'amsfonts', 'booktabs', 'amsthm', 'float', 'tikz', 'caption',
|
||||||
|
'setspace', 'multirow', 'array', 'multicol', 'titlesec', 'enumitem',
|
||||||
|
'ifthen', 'listings', 'blindtext', 'subcaption', 'times', 'bm',
|
||||||
|
'subfigure', 'algorithm', 'fontspec', 'biblatex', 'tabularx',
|
||||||
|
'microtype', 'etoolbox', 'parskip', 'calc', 'verbatim', 'mathtools',
|
||||||
|
'epsfig', 'wrapfig', 'lipsum', 'cite', 'textcomp', 'longtable',
|
||||||
|
'textpos', 'algpseudocode', 'enumerate', 'subfig', 'pdfpages',
|
||||||
|
'epstopdf', 'latexsym', 'lmodern', 'pifont', 'ragged2e', 'rotating',
|
||||||
|
'dcolumn', 'xltxtra', 'marvosym', 'indentfirst', 'xspace', 'csquotes',
|
||||||
|
'xparse', 'changepage', 'soul', 'xunicode', 'comment', 'mathrsfs',
|
||||||
|
'tocbibind', 'lastpage', 'algorithm2e', 'pgfplots', 'lineno',
|
||||||
|
'graphics', 'algorithmic', 'fullpage', 'mathptmx', 'todonotes',
|
||||||
|
'ulem', 'tweaklist', 'moderncvstyleclassic', 'collection',
|
||||||
|
'moderncvcompatibility', 'gensymb', 'helvet', 'siunitx', 'adjustbox',
|
||||||
|
'placeins', 'colortbl', 'appendix', 'makeidx', 'supertabular', 'ifpdf',
|
||||||
|
'framed', 'aliascnt', 'layaureo', 'authblk'
|
||||||
|
]
|
||||||
|
|
||||||
|
packageSnippets = for pkg in packages
|
||||||
|
{
|
||||||
|
caption: "\\usepackage{#{pkg}}"
|
||||||
|
snippet: "\\usepackage{#{pkg}}"
|
||||||
|
meta: "pkg"
|
||||||
|
}
|
||||||
|
|
||||||
|
packageSnippets.push {
|
||||||
|
caption: "\\usepackage{}"
|
||||||
|
snippet: "\\usepackage{}"
|
||||||
|
meta: "pkg"
|
||||||
|
score: 55
|
||||||
|
}
|
||||||
|
|
||||||
|
class PackageManager
|
||||||
|
getCompletions: (editor, session, pos, prefix, callback) ->
|
||||||
|
docText = session.getValue()
|
||||||
|
loaded = parseLoadedPackages docText
|
||||||
|
callback null, packageSnippets
|
||||||
|
|
||||||
|
return PackageManager
|
Loading…
Reference in a new issue