mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-06 08:07:49 +00:00
fix(ui): Show the full SDK name in selects and shorten Windows home paths
A long detail (an installation path) was not cut, so it pushed the option label out (e.g. "Eclipse Adopti…", the Maven name hidden) and scrolled the popup sideways. The label now keeps its width and the detail is cut with an ellipsis (full path in the tooltip, detail text translated). Paths under C:/Users/<name> are shown as ~/…
This commit is contained in:
@@ -63,5 +63,7 @@ describe("language pages", () => {
|
||||
expect(filterPackages(pkgs, "dj").map((p) => p.name)).toEqual(["Django"]);
|
||||
expect(filterPackages(pkgs, "")).toHaveLength(2);
|
||||
expect(tildify("/Users/me/p/.venv/bin/python")).toBe("~/p/.venv/bin/python");
|
||||
expect(tildify("C:/Users/me/.m2/wrapper/dists/apache-maven-3.9.16")).toBe("~/.m2/wrapper/dists/apache-maven-3.9.16");
|
||||
expect(tildify("C:/Program Files/Java/jdk-21")).toBe("C:/Program Files/Java/jdk-21");
|
||||
});
|
||||
});
|
||||
|
||||
@@ -15,7 +15,7 @@ export function useProjectSetting<T>(key: string): [T, (v: T) => void] {
|
||||
return useSetting<T>(key, hasProject ? "project" : "global");
|
||||
}
|
||||
|
||||
const HOME = /^\/(?:Users|home)\/[^/]+/;
|
||||
const HOME = /^(?:\/(?:Users|home)|[A-Za-z]:[\\/]Users)[\\/][^\\/]+/;
|
||||
|
||||
/** `~/…` for paths in the home directory. */
|
||||
export function tildify(path: string): string {
|
||||
|
||||
@@ -72,13 +72,20 @@
|
||||
flex: none;
|
||||
color: var(--fg-muted);
|
||||
}
|
||||
/* The label keeps its width (up to most of the row); a long detail (a path) is cut instead. */
|
||||
.optionLabel {
|
||||
flex: 1;
|
||||
flex: 1 0 auto;
|
||||
max-width: 70%;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.detail {
|
||||
flex: 0 1 auto;
|
||||
min-width: 0;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.detail {
|
||||
white-space: nowrap;
|
||||
color: var(--fg-muted);
|
||||
}
|
||||
.disabled {
|
||||
|
||||
+5
-1
@@ -145,7 +145,11 @@ export function Select<V extends string = string>({
|
||||
<span className={styles.check}>{o.value === value && <Icon name="check" size={12} />}</span>
|
||||
{o.icon && <Icon name={o.icon} size={14} />}
|
||||
<span className={styles.optionLabel}>{tx(o.label)}</span>
|
||||
{o.detail && <span className={styles.detail}>{o.detail}</span>}
|
||||
{o.detail && (
|
||||
<span className={styles.detail} title={o.detail}>
|
||||
{tx(o.detail)}
|
||||
</span>
|
||||
)}
|
||||
</>
|
||||
)}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user