changed: prefix and suffix in search list
This commit is contained in:
		
							parent
							
								
									4d483a19e6
								
							
						
					
					
						commit
						e9305d848c
					
				
							
								
								
									
										122
									
								
								main.js
								
								
								
								
							
							
						
						
									
										122
									
								
								main.js
								
								
								
								
							| 
						 | 
					@ -1771,38 +1771,64 @@ function titlewithtags(note)
 | 
				
			||||||
function commandpalette()
 | 
					function commandpalette()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	searchinlist(commands
 | 
						searchinlist(commands
 | 
				
			||||||
		.filter(c => !c.excludepalette)
 | 
							.filter(command => !command.excludepalette)
 | 
				
			||||||
		.map(c => c.hint)
 | 
							.map(command =>
 | 
				
			||||||
		.concat(snippets.map(s => "Insert snippet: " + s.hint))
 | 
					 | 
				
			||||||
		.concat(localdata.map(n => "Open note: " + titlewithtags(n)))
 | 
					 | 
				
			||||||
		.concat(Object.keys(settings).map(s => "Edit setting: " + s)))
 | 
					 | 
				
			||||||
	.then(hint =>
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		var command = commands.find(c => c.hint == hint);
 | 
					 | 
				
			||||||
		if (command)
 | 
					 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			executecommand(command);
 | 
								return {
 | 
				
			||||||
 | 
									text: command.hint,
 | 
				
			||||||
 | 
									suffix: command.shortcut ? [command.shortcut] : null
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
							.concat(snippets.map(s =>
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								return {
 | 
				
			||||||
 | 
									prefix: "snippet: ",
 | 
				
			||||||
 | 
									text: s.hint
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							}))
 | 
				
			||||||
 | 
							.concat(localdata.map(n =>
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								return {
 | 
				
			||||||
 | 
									prefix: "note: ",
 | 
				
			||||||
 | 
									text: n.title,
 | 
				
			||||||
 | 
									suffix: gettags(n).map(t => tagmark + t)
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							}))
 | 
				
			||||||
 | 
							.concat(Object.keys(settings).map(s =>
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								return {
 | 
				
			||||||
 | 
									prefix: "setting: ",
 | 
				
			||||||
 | 
									text: s,
 | 
				
			||||||
 | 
									suffix: s == "password" ? null : [settings[s]]
 | 
				
			||||||
 | 
								};
 | 
				
			||||||
 | 
							})))
 | 
				
			||||||
 | 
						.then(selected =>
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							if (selected.prefix == "snippet: ")
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								var snippet = snippets.find(s => s.hint == selected.text);
 | 
				
			||||||
 | 
								insert(snippet.insert, snippet.cursor);
 | 
				
			||||||
 | 
								md.focus();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							else if (selected.prefix == "note: ")
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								loadnote(selected.text);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							else if (selected.prefix == "setting: ")
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								editsetting(selected.text);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			var snippet = snippets.find(s => "Insert snippet: " + s.hint == hint);
 | 
								var command = commands.find(c => c.hint == selected.text);
 | 
				
			||||||
			if (snippet)
 | 
								if (command)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				insert(snippet.insert, snippet.cursor);
 | 
									executecommand(command);
 | 
				
			||||||
				md.focus();
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			else if (hint.startsWith("Open note: "))
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				loadnote(hint.replace("Open note: ", "").replace(new RegExp(" \\" + tagmark + ".*"), ""));
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			else if (hint.startsWith("Edit setting: "))
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				editsetting(hint.replace("Edit setting: ", ""));
 | 
					 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			else
 | 
								else
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				// if unknown command, create a new note
 | 
									// if unknown command, create a new note
 | 
				
			||||||
				loadnote(hint);
 | 
									loadnote(selected);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	});
 | 
						});
 | 
				
			||||||
| 
						 | 
					@ -1833,11 +1859,39 @@ function searchinlist(list)
 | 
				
			||||||
		list.forEach(item =>
 | 
							list.forEach(item =>
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			var elt = document.createElement("div");
 | 
								var elt = document.createElement("div");
 | 
				
			||||||
			elt.textContent = item;
 | 
								elt.tag = item;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if (typeof item === "string")
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									elt.textContent = item;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									var ts = document.createElement("span");
 | 
				
			||||||
 | 
									ts.setAttribute("style", "color:grey");
 | 
				
			||||||
 | 
									ts.innerHTML = item.prefix || "";
 | 
				
			||||||
 | 
									elt.appendChild(ts);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									ts = document.createElement("span");
 | 
				
			||||||
 | 
									ts.innerHTML = item.text;
 | 
				
			||||||
 | 
									elt.appendChild(ts);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									if (item.suffix)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										item.suffix.forEach(t =>
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											ts = document.createElement("span");
 | 
				
			||||||
 | 
											ts.setAttribute("style", "color:grey");
 | 
				
			||||||
 | 
											ts.innerHTML = " " + t;
 | 
				
			||||||
 | 
											elt.appendChild(ts);
 | 
				
			||||||
 | 
										});
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			elt.onclick = function()
 | 
								elt.onclick = function()
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				searchdialog.hidden = true;
 | 
									searchdialog.hidden = true;
 | 
				
			||||||
				selectitem(item);
 | 
									selectitem(elt.tag);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			filteredlist.appendChild(elt);
 | 
								filteredlist.appendChild(elt);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
| 
						 | 
					@ -1852,7 +1906,7 @@ function searchinlist(list)
 | 
				
			||||||
				event.preventDefault();
 | 
									event.preventDefault();
 | 
				
			||||||
				searchdialog.hidden = true;
 | 
									searchdialog.hidden = true;
 | 
				
			||||||
				var selected = document.getElementsByClassName("selected")[0];
 | 
									var selected = document.getElementsByClassName("selected")[0];
 | 
				
			||||||
				selectitem(selected ? selected.textContent : filter.value);
 | 
									selectitem(selected ? selected.tag : filter.value);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2378,17 +2432,20 @@ function toggletitle()
 | 
				
			||||||
function selectnote()
 | 
					function selectnote()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	return searchinlist(
 | 
						return searchinlist(
 | 
				
			||||||
		localdata
 | 
							localdata.map(n =>
 | 
				
			||||||
		.map(n => titlewithtags(n))
 | 
							{
 | 
				
			||||||
		.filter(text => !settings.tagfilter || text.includes(tagmark + settings.tagfilter)));
 | 
								return {
 | 
				
			||||||
 | 
									text: n.title,
 | 
				
			||||||
 | 
									suffix: gettags(n).map(t => tagmark + t)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function searchautocomplete()
 | 
					function searchautocomplete()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	selectnote().then(selected =>
 | 
						selectnote().then(selected =>
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		selected = selected.replace(new RegExp(" \\" + tagmark + ".*"), "");
 | 
							insertautocomplete(selected.text);
 | 
				
			||||||
		insertautocomplete(selected);
 | 
					 | 
				
			||||||
	});
 | 
						});
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2396,8 +2453,7 @@ function searchandloadnote()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	selectnote().then(selected =>
 | 
						selectnote().then(selected =>
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		selected = selected.replace(new RegExp(" \\" + tagmark + ".*"), "");
 | 
							loadnote(selected.text);
 | 
				
			||||||
		loadnote(selected);
 | 
					 | 
				
			||||||
	});
 | 
						});
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue